diff --git a/.gitignore b/.gitignore index aaded9103..1ae7a3930 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ docker/**/*.zip docker/**/output results +allWorkloads.txt ### SQLite ### **/*.db diff --git a/.run/auctionmark - yugabyte.run.xml b/.run/auctionmark - yugabyte.run.xml new file mode 100644 index 000000000..7fc5f1351 --- /dev/null +++ b/.run/auctionmark - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/chbenchmark - yugabyte.run.xml b/.run/chbenchmark - yugabyte.run.xml new file mode 100644 index 000000000..ed3c1610d --- /dev/null +++ b/.run/chbenchmark - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/epinions - yugabyte.run.xml b/.run/epinions - yugabyte.run.xml new file mode 100644 index 000000000..b897555f4 --- /dev/null +++ b/.run/epinions - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/featurebench - mysql.run.xml b/.run/featurebench - mysql.run.xml new file mode 100644 index 000000000..c5302bea1 --- /dev/null +++ b/.run/featurebench - mysql.run.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/.run/featurebench - postgres.run.xml b/.run/featurebench - postgres.run.xml new file mode 100644 index 000000000..dcc8d6fa4 --- /dev/null +++ b/.run/featurebench - postgres.run.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/.run/featurebench - yugabyte.run.xml b/.run/featurebench - yugabyte.run.xml new file mode 100644 index 000000000..634327b05 --- /dev/null +++ b/.run/featurebench - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/.run/featurebench.run.xml b/.run/featurebench.run.xml new file mode 100644 index 000000000..3973486c5 --- /dev/null +++ b/.run/featurebench.run.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/.run/noop - yugabyte.run.xml b/.run/noop - yugabyte.run.xml new file mode 100644 index 000000000..8fe990218 --- /dev/null +++ b/.run/noop - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/perf-dataloader - postgres.run.xml b/.run/perf-dataloader - postgres.run.xml new file mode 100644 index 000000000..a614a827e --- /dev/null +++ b/.run/perf-dataloader - postgres.run.xml @@ -0,0 +1,21 @@ + + + + \ No newline at end of file diff --git a/.run/perf-dataloader - yugabyte.run.xml b/.run/perf-dataloader - yugabyte.run.xml new file mode 100644 index 000000000..43d51f71c --- /dev/null +++ b/.run/perf-dataloader - yugabyte.run.xml @@ -0,0 +1,21 @@ + + + + \ No newline at end of file diff --git a/.run/resourcestressrunner - yugabyte.run.xml b/.run/resourcestressrunner - yugabyte.run.xml new file mode 100644 index 000000000..4b7da21af --- /dev/null +++ b/.run/resourcestressrunner - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/seats - yugabyte.run.xml b/.run/seats - yugabyte.run.xml new file mode 100644 index 000000000..a029acfd3 --- /dev/null +++ b/.run/seats - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/sibench - yugabyte.run.xml b/.run/sibench - yugabyte.run.xml new file mode 100644 index 000000000..a047ce383 --- /dev/null +++ b/.run/sibench - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/smallbank - yugabyte.run.xml b/.run/smallbank - yugabyte.run.xml new file mode 100644 index 000000000..1c65c98ae --- /dev/null +++ b/.run/smallbank - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/tatp - yugabyte.run.xml b/.run/tatp - yugabyte.run.xml new file mode 100644 index 000000000..865dcfb07 --- /dev/null +++ b/.run/tatp - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/tpcc - yugabyte.run.xml b/.run/tpcc - yugabyte.run.xml new file mode 100644 index 000000000..3d664d80c --- /dev/null +++ b/.run/tpcc - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/tpch - yugabyte.run.xml b/.run/tpch - yugabyte.run.xml new file mode 100644 index 000000000..eb55827a4 --- /dev/null +++ b/.run/tpch - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/twitter - yugabyte.run.xml b/.run/twitter - yugabyte.run.xml new file mode 100644 index 000000000..678df867f --- /dev/null +++ b/.run/twitter - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/voter - yugabyte.run.xml b/.run/voter - yugabyte.run.xml new file mode 100644 index 000000000..c25228a96 --- /dev/null +++ b/.run/voter - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/wikipedia - yugabyte.run.xml b/.run/wikipedia - yugabyte.run.xml new file mode 100644 index 000000000..76ec3733d --- /dev/null +++ b/.run/wikipedia - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/.run/ycsb - yugabyte.run.xml b/.run/ycsb - yugabyte.run.xml new file mode 100644 index 000000000..98615fbcc --- /dev/null +++ b/.run/ycsb - yugabyte.run.xml @@ -0,0 +1,16 @@ + + + + diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..7be571093 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,146 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## What this is + +This is YugabyteDB's fork of [CMU BenchBase](https://github.com/cmu-db/benchbase) (formerly OLTPBench), a multi-DBMS SQL benchmarking framework that drives variable-rate, variable-mixture load against any JDBC database. Beyond the upstream benchmarks (TPC-C, TPC-H, YCSB, AuctionMark, etc.), this fork adds two major YugabyteDB-specific features: + +- **FeatureBench** (`benchmarks/featurebench`) — a YAML-driven microbenchmark framework for building targeted workloads without writing Java. **This is the primary subsystem to understand in this fork** (see the dedicated section below). +- **perf-dataloader** (`benchmarks/dataloader`) — a tool that infers a table's schema from a live database and generates data to load into it. See `PERF-DATALOADER.md`. + +Requires **Java 17+** and **Maven 3.6+**. + +## Build, run, test + +The Maven **profile (`-P`)** selects both the JDBC driver dependency and the output artifact classifier. Supported profiles: `postgres`, `mysql`, `mariadb`, `sqlite`, `cockroachdb`, `phoenix`, `yugabyte`, `spanner`, `sqlserver`. + +```bash +# Build a distribution for a profile → target/benchbase-.{tgz,zip} +./mvnw clean package -P yugabyte + +# Convenience script: checks Java/Maven versions, builds the yugabyte profile +# (-DskipTests), then extracts the tgz into target/benchbase-yugabyte/ +./build.sh + +# Run tests (unit tests need no profile). CI runs `mvn -B test`. +./mvnw test + +# Run a single test class or method +./mvnw test -Dtest=TestTPCCBenchmark +./mvnw test -Dtest=TestTPCCBenchmark#testGetProcedureNames +``` + +Running a benchmark (main class `com.oltpbenchmark.DBWorkload`): + +```bash +# FeatureBench from source without packaging (note the -P profile) +mvn clean compile exec:java -P yugabyte -Dexec.args="-b featurebench -c config/yugabyte/sample_featurebench_config.yaml --create=true --load=true --execute=true" + +# From an extracted distribution +java -jar benchbase.jar -b tpcc -c config/postgres/sample_tpcc_config.xml --create=true --load=true --execute=true + +# perf-dataloader (uses the extracted distribution jar under the hood) +./perf-data-loader --config --table-name --rows +``` + +Key CLI flags: `-b` benchmark name (comma-separated for composite runs like `tpcc,chbenchmark`), `-c` config file, the phase toggles `--create` / `--load` / `--execute` / `--clear` / `--cleanup`, and `--workloads` (FeatureBench: run only a named subset of `executeRules`). Run `java -jar benchbase.jar -h` for the full list. + +Per-run results (latency/throughput CSVs, and for FeatureBench optionally `pg_stat_statements` and EXPLAIN output as JSON) are written to the `results/` folder. + +## Framework architecture + +**Entry point → plugin registry.** `DBWorkload.main()` parses the CLI and config, then consults `config/plugin.xml` to map a benchmark short-name (e.g. `tpcc`, `featurebench`, `perf-dataloader`) to its `BenchmarkModule` implementation class. **Adding a new benchmark requires an entry in `config/plugin.xml`.** DBWorkload then orchestrates the create → load → execute phases. FeatureBench and perf-dataloader are detected by name in `DBWorkload` and read **YAML** configs; all other benchmarks read **XML**. + +**Core API (`com.oltpbenchmark.api`)** — every benchmark is built from these abstractions: +- `BenchmarkModule` — abstract base per benchmark. Concrete benchmarks implement `makeWorkersImpl()`, `makeLoaderImpl()`, and `getProcedurePackageImpl()`. `createDatabase()` runs the create phase. +- `Loader` / `LoaderThread` — populate the schema during the **load** phase; `createLoaderThreads()` returns the parallel loaders. +- `Worker` — a `Runnable` that drives transactions during the **execute** phase; subclasses implement `executeWork(conn, txnType)` and may override `initialize()` / `tearDown()`. +- `Procedure` + `SQLStmt` — encapsulate one transaction's SQL. `StatementDialects` (and `api/dialects/`) supply per-DBMS SQL variants so one procedure can target multiple databases. +- `TransactionType(s)` — the weighted transaction mix a Worker samples from. Each transaction type maps to one unit of work. +- `api/collectors/` — per-DBMS collectors (`PostgresCollector`, `YuagbyteCollector`, `MySQLCollector`, `CockroachCollector`) that snapshot DB parameters/stats. + +**Standard benchmark layout.** Each benchmark under `benchmarks//` follows the same pattern: a `Benchmark` (extends `BenchmarkModule`), a `Loader`, a `Worker`, and a `procedures/` package of `Procedure` subclasses. Configs read via commons-configuration2, templated with Jinjava. + +## FeatureBench (primary subsystem) + +FeatureBench turns a single YAML file into a create → load → execute benchmark run. `plugin.xml` maps `featurebench` → `FeatureBenchBenchmark`, which wires up three cooperating classes: + +- **`FeatureBenchBenchmark`** — the `BenchmarkModule`. In `makeWorkersImpl(workcount)` it reads `microbenchmark/properties/executeRules[]`, converts each rule's queries+bindings into `ExecuteRule`/`Query`/`UtilToMethod` objects (`configToExecuteRules`), and creates one `FeatureBenchWorker` per terminal. `makeLoaderImpl()` builds the `FeatureBenchLoader`. +- **`FeatureBenchLoader`** — runs create + load. `createLoaderThreads()` first runs the create phase and optional `beforeLoad`, then either delegates to a custom `loadOnce()` (`GeneratorOnce`) or auto-generates INSERT loaders from YAML `loadRules` (`GeneratorYaml`). Loading is batched (`batchsize` in config) and type-casts array/vector/json columns based on the util's class name (see `typeCastDataTypes`). `afterLoad` DDLs run once after all loader threads finish. +- **`FeatureBenchWorker`** — runs execute. `executeWork()` picks the `ExecuteRule` for the sampled `TransactionType`, generates fresh parameter values for each query via reflection, binds them to a cached `PreparedStatement`, and executes. Returns `ZERO_ROWS` if a query affected/returned no rows. + +**Config shape** (`microbenchmark` block; keys under `properties`): + +| Key | Purpose | +|---|---| +| `class` | Fully-qualified `YBMicroBenchmark` subclass. Default `customworkload.YBDefaultMicroBenchmark` (the YAML interpreter). | +| `properties.create` | List of DDL strings run in the create phase. | +| `properties.createdb` | DDL that creates a *database* (parsed for the db name; the JDBC URL is then rewritten to point at it). | +| `properties.loadRules` | Per-table row counts + column generators (see util functions). | +| `properties.executeRules` | Named workloads → weighted `run` entries → `queries` with `bindings`. | +| `properties.afterLoad` | DDL run once after load (e.g. create indexes post-load). | +| `properties.cleanup` | DDL run with `--cleanup`. | +| `properties.execute` | `true` → call the custom class's multithreaded `execute()` instead of `executeRules`. | +| `properties.setAutoCommit` | Set `false` when using code-driven `execute`/`executeOnce`. | + +Top-level run knobs also read from the YAML: `terminals`, `works/work` (`time_secs`, `active_terminals`, `rate`, `warmup`), `batchsize`, `isolation`, `loaderthreads`, plus FeatureBench-specific instrumentation flags: `collect_pg_stat_statements`, `disable_explain`, `force_capture_explain_analyze`, `use_dist_in_explain` (Yugabyte only), `analyze_on_all_tables`, `optimalThreads`. + +### Two authoring modes + +1. **YAML-driven (declarative, the common case).** Leave `class` at `YBDefaultMicroBenchmark` and describe everything in `create` / `loadRules` / `executeRules`. No Java. This is what the great majority of `config/yugabyte/**` samples do. + +2. **Code-driven.** Set `properties: {}` and point `class` at your own subclass of `YBMicroBenchmark` in `benchmarks/featurebench/customworkload/`. Override the lifecycle hooks: + - `create(conn)`, `beforeLoad(conn)`, `loadOnce(conn)`, `afterLoad(conn)`, `cleanUp(conn)` + - `executeOnce(conn)` — single-threaded, runs once during the MEASURE state; or + - `execute(conn)` — multithreaded, one invocation per terminal per transaction. + + The base class exposes boolean flags (`loadOnceImplemented`, `executeOnceImplemented`, `beforeLoadImplemented`, `afterLoadImplemented`) that a subclass sets to signal which hooks it provides — the loader/worker branch on these. When using `execute`/`executeOnce`, set `setAutoCommit: false` in the config. + +### loadRules → data generation + +Each `loadRules` entry names a `table`, a `rows` count, and a list of `columns`. Every column has a `util` (generator name) and `params`. The loader builds one INSERT per table and, for each row, calls each util's `run()` to produce a bound value. Extra keys: +- `count` on a *loadRule* → clone the rule into `
1`, `
2`, … (also `table: "a,b"` splits into multiple tables). +- `count` on a *column* → repeat that column N times, suffixing the name (`name1`, `name2`, …). + +### executeRules → transaction mix + +Structure: `executeRules` is a list of **workloads**; each has a `workload` name and a `run` list. Each `run` entry is a named transaction with a `weight` and one or more `queries`. Each query has a SQL string (`?` placeholders) and a list of `bindings`, each binding a `util`+`params` that generates one parameter value per execution. + +- **Multiple `executeRules` = multiple serial runs.** DBWorkload iterates workloads; each becomes its own set of `TransactionType`s and its own results sub-folder (named after `workload`, or a timestamp). `--workloads name1,name2` restricts which run. +- `weight` sets the relative frequency of each `run` entry within a workload (relative to the other runs' weights — they need not sum to 100). +- Query-level extras: `count` (execute the query N times per transaction), `pattern_count` (repeat the binding list N times, for large multi-row INSERTs / IN-lists), `explain-plan-rc-validation` (assert the EXPLAIN row count). +- Binding-level extras: `count` (repeat a binding N times), `split_min_max_for_count` (partition a `[min,max]` range into N disjoint sub-ranges — one binding each, for sharding key space across placeholders), `referenceName` + the `ExpressionEval` util (generate a value, name it, then compute a later binding from it — two-pass evaluation in `generateParameterValues`). + +### Util functions (data generators) + +Utils live in `benchmarks/featurebench/utils/` and are referenced **by simple class name** in YAML (`util: PrimaryIntGen`). `helpers/UtilToMethod` resolves the name to `com.oltpbenchmark.benchmarks.featurebench.utils.` via reflection and constructs it with the YAML `params` — the load path uses the `(List params)` constructor; the execute path uses `(List params, int workerId, int totalWorkers)` so a generator can partition its key space per worker. Every util implements the `BaseUtil` interface (`Object run()`), returning the next value. + +**Before adding a generator, consult the catalog in `src/main/java/com/oltpbenchmark/benchmarks/featurebench/Readme.md`** — it documents every util, its params, and their types. `workerhelpers/` (`ExecuteRule`, `Query`, `Bindings`) are the parsed YAML model objects; `helpers/` (`UtilToMethod`, `SimpleExpressionEvaluator`, `MD5hash`) back the reflection and expression machinery. + +### Instrumentation + +When `collect_pg_stat_statements: true`, the worker resets `pg_stat_statements` (and, on Postgres, `pg_stat_user_tables`) before MEASURE and snapshots them in `tearDown()`, matching each configured query to its stats row via cosine similarity of tokenized SQL. Unless `disable_explain: true`, it also runs `EXPLAIN (ANALYZE, …)` for each query and captures planning/execution time, peak memory, and row counts. All of this is written as JSON into `results/` alongside the standard latency/throughput CSVs (`FeaturebenchAdditionalResults`). + +### Sample configs + +`config/yugabyte/` is organized by feature: `demo/` holds canonical single examples of each capability (`featurebench_count_query.yaml`, `featurebench_explain.yaml`, `featurebench_after_load.yaml`, `featurebench_colocated.yaml`, …). Start from `sample_featurebench_config.yaml`. + +### Regression pipelines (`config/yugabyte/regression_pipelines/`) + +**YugabyteDB's nightly regression pipelines run the FeatureBench configs under `config/yugabyte/regression_pipelines/`.** Treat these as the maintained, run-in-CI workloads — edits here affect the nightly runs, and new comparative workloads belong here. + +The directory is a two-level **`//.yaml`** matrix: + +- **Categories** (workload themes, one dir each): `aggregate_workloads`, `bulkload`, `conditional_workloads`, `foreign_key`, `Index_workloads`, `join_workloads`, `locking_semantics`, `miscellaneous`, `orderby_workloads`, `perfstudio`, `range_write_workloads`, `scan_workloads`, `vector_workloads`, `write_workloads`. +- **DB variants** (each category holds parallel sub-dirs; the *same* workload file name is duplicated across them so the identical workload can be compared across engines/layouts): + - `postgres` — vanilla PostgreSQL (`type: POSTGRES`, `org.postgresql.Driver`, port 5432) — the baseline. + - `yugabyte` — YugabyteDB default, hash-sharded (`type: YUGABYTE`, `com.yugabyte.Driver`, port 5433). + - `yb_colocated` — YugabyteDB with colocated tables, via `createdb: ... create database ... with colocated=true`. + - `yugabyte_range` — YugabyteDB with range-sharded primary keys (`primary key(... asc)`); present only where sharding layout is the variable under test (e.g. `foreign_key/`, `perfstudio/`). + + A workload may be absent from a variant when it doesn't apply (e.g. a hash-partitioned-table case has no `yb_colocated` version). + +- **File naming**: `_.yaml`, prefix per category — `JOING1_…` (joins), `FK_G2_…` (foreign key), `MG1_…` (miscellaneous), etc. +- **Deeper nesting**: `bulkload//goalN_/.yaml` groups configs by test "goal" (varying indexes, pre-vs-backfilled indexes, varying rows, varying columns). +- **Endpoints are templated** with `{{endpoint}}` (Jinjava) and filled in by the pipeline at run time. diff --git a/PERF-DATALOADER.md b/PERF-DATALOADER.md new file mode 100644 index 000000000..549f31a5a --- /dev/null +++ b/PERF-DATALOADER.md @@ -0,0 +1,71 @@ +# Perf Dataloader + +### Used to infer the table schema from the database and generate a benchbase interpreted input yaml file which can be used to load sample data into the table. +This tool is integrated inside benchbase so that the users don't have to install additional tools for using it. All existing functionalities from yugabyte/benchbase should work as it is. + +### Build steps: +#### Pre-requisites +- java version 17 or higher is installed +- maven version 3.6 or higher is installed + +#### build steps +The build steps will also validate if the pre-requisites are met. +``` +cd benchbase +./build.sh +``` + +### How to use: +``` +#$./perf-data-loader --help +Usage: ./perf-data-loader --config --table-name --rows [--gen-config-only] [--load-only] [--gen-load-order] +Short forms: -c -t -r +Options: + -c, --config Configuration file + -t, --table-name Table name + -r, --rows Number of rows + --gen-config-only Only generate the loader/config file + --load-only Only load data into the database + --gen-load-order Generate table load order in the provided database + -h, --help Display this help message +``` +- to only generate the loader file(skip the actual load). This will generate the yaml file _loader.yaml which can be used in loading the data. +``` +./perf-data-loader --config --table-name --rows --gen-config-only +``` + +- to only load the data(when your loader file is already generate) +``` +./perf-data-loader --config --load-only +``` + +- to generate the loader yaml file and load the data in one go +``` +./perf-data-loader --config --table-name --rows +``` +- to generate the load order of all the tables in the database. It is useful to know the load order when there are +foreign ey references in the db schema. When used, this command will print out the load order/levels in which you can +populate the tables. Start from tables at level 0, then level 1, and so on. It also generate load_order.json file +containing the load order in json format. +```shell +./perf-data-loader -c --gen-load-order +``` + +the input yaml file should have following content +``` +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=require&reWriteBatchedInserts=true +username: yugabyte +password: password + +tablename: {{tableName}} +rows: {{rows}} + +``` + +#### Caveat/In-progress items +- partitioned tables are not yet supported. +- columns with user defined data types are not yet supported. + +#### [Reference utility functions](https://github.com/yugabyte/benchbase/blob/main/src/main/java/com/oltpbenchmark/benchmarks/featurebench/Readme.md#utility-functions-) diff --git a/README.md b/README.md index 801a3abd3..801581158 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ benchmark, leveraging all the system features (logging, controlled speed, contro ## Usage Guide ### How to Build -Run the following command to build the distribution for a given database specified as the profile name (`-P`). The following profiles are currently supported: `postgres`, `mysql`, `mariadb`, `sqlite`, `cockroachdb`, `phoenix`, and `spanner`. +Run the following command to build the distribution for a given database specified as the profile name (`-P`). The following profiles are currently supported: `postgres`, `mysql`, `mariadb`, `sqlite`, `cockroachdb`, `phoenix`, `yugabyte` and `spanner`. ```bash ./mvnw clean package -P diff --git a/build.sh b/build.sh new file mode 100755 index 000000000..8c4be1df6 --- /dev/null +++ b/build.sh @@ -0,0 +1,65 @@ +#!/bin/sh + +# Function to check Java version +check_java() { + if command -v java > /dev/null; then + JAVA_VERSION=$(java -version 2>&1 | awk -F[\"_] 'NR==1 {print $2}') + JAVA_MAJOR_VERSION=$(echo $JAVA_VERSION | awk -F[.] '{print $1}') + if [ "$JAVA_MAJOR_VERSION" -ge 17 ]; then + echo "Java version $JAVA_VERSION is installed." + else + echo "Java 17 or higher is required. Please install the required version of Java." + exit 1 + fi + else + echo "Java is not installed. Please install Java 17 or higher." + exit 1 + fi +} + +# Function to check Maven version +check_maven() { + if command -v mvn > /dev/null; then + MAVEN_VERSION=$(mvn -version 2>&1 | awk '/Apache Maven/ {print $3}') + MAVEN_MAJOR_VERSION=$(echo $MAVEN_VERSION | awk -F[.] '{print $1}') + MAVEN_MINOR_VERSION=$(echo $MAVEN_VERSION | awk -F[.] '{print $2}') + if [ "$MAVEN_MAJOR_VERSION" -ge 3 ] && [ "$MAVEN_MINOR_VERSION" -ge 6 ]; then + echo "Maven version $MAVEN_VERSION is installed." + else + echo "Maven 3.6 or higher is required. Please install the required version of Maven." + exit 1 + fi + else + echo "Maven is not installed. Please install Maven 3.6 or higher." + exit 1 + fi +} + +# Check for OS and run respective checks +case "$(uname -s)" in + Linux*) + echo "Running on Linux" + check_java + check_maven + ;; + Darwin*) + echo "Running on macOS" + check_java + check_maven + ;; + CYGWIN*|MINGW*|MSYS*) + echo "Running on Windows" + check_java + check_maven + ;; + *) + echo "Unsupported OS" + exit 1 + ;; +esac + +# Continue with the build process +./mvnw clean package -P yugabyte -DskipTests +cd target +tar -xzf benchbase-yugabyte.tgz +cd benchbase-yugabyte diff --git a/config/.DS_Store b/config/.DS_Store new file mode 100644 index 000000000..087eb0e34 Binary files /dev/null and b/config/.DS_Store differ diff --git a/config/plugin.xml b/config/plugin.xml index a31108273..2760b1dfe 100644 --- a/config/plugin.xml +++ b/config/plugin.xml @@ -14,7 +14,9 @@ com.oltpbenchmark.benchmarks.voter.VoterBenchmark com.oltpbenchmark.benchmarks.sibench.SIBenchmark com.oltpbenchmark.benchmarks.noop.NoOpBenchmark + com.oltpbenchmark.benchmarks.featurebench.FeatureBenchBenchmark com.oltpbenchmark.benchmarks.smallbank.SmallBankBenchmark com.oltpbenchmark.benchmarks.hyadapt.HYADAPTBenchmark com.oltpbenchmark.benchmarks.otmetrics.OTMetricsBenchmark + com.oltpbenchmark.benchmarks.dataloader.DataGenerator diff --git a/config/postgres/sample_auctionmark_config.xml b/config/postgres/sample_auctionmark_config.xml index d8da78e20..ad7371714 100644 --- a/config/postgres/sample_auctionmark_config.xml +++ b/config/postgres/sample_auctionmark_config.xml @@ -4,21 +4,22 @@ POSTGRES org.postgresql.Driver - jdbc:postgresql://localhost:5432/benchbase?sslmode=disable&ApplicationName=auctionmark&reWriteBatchedInserts=true - admin - password - TRANSACTION_SERIALIZABLE + jdbc:postgresql://localhost:5432/benchbase?sslmode=require&ApplicationName=auctionmark&reWriteBatchedInserts=true + postgres + + TRANSACTION_REPEATABLE_READ 128 - + 10 - 1 + 100 - 1 + 5 - - 10000 + 300 + + unlimited 45, 10, 20, 2, 1, 4, 10, 5, 3 @@ -53,4 +54,4 @@ UpdateItem - \ No newline at end of file + diff --git a/config/postgres/sample_featurebench_config.xml b/config/postgres/sample_featurebench_config.xml new file mode 100644 index 000000000..ea02ac8b1 --- /dev/null +++ b/config/postgres/sample_featurebench_config.xml @@ -0,0 +1,32 @@ + + + + + POSTGRES + org.postgresql.Driver + jdbc:postgresql://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_SERIALIZABLE + 128 + + + + 1 + + + 1 + + + + 1000 + 100 + + + + + + FeatureBench + + + diff --git a/config/postgres/sample_perf_dataloader_config.yaml b/config/postgres/sample_perf_dataloader_config.yaml new file mode 100644 index 000000000..58d6a17a7 --- /dev/null +++ b/config/postgres/sample_perf_dataloader_config.yaml @@ -0,0 +1,8 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://localhost:5432/firefly?sslmode=disable&reWriteBatchedInserts=true +username: postgres +password: postgres + +tablename: {{tableName}} +rows: {{rows}} \ No newline at end of file diff --git a/config/postgres/sample_seats_config.xml b/config/postgres/sample_seats_config.xml index 8a1115b5f..9931cd6f0 100644 --- a/config/postgres/sample_seats_config.xml +++ b/config/postgres/sample_seats_config.xml @@ -4,21 +4,23 @@ POSTGRES org.postgresql.Driver - jdbc:postgresql://localhost:5432/benchbase?sslmode=disable&ApplicationName=seats&reWriteBatchedInserts=true - admin - password - TRANSACTION_SERIALIZABLE + jdbc:postgresql://localhost:5432/postgres?sslmode=require&ApplicationName=seats&reWriteBatchedInserts=true + postgres + + TRANSACTION_REPEATABLE_READ 128 + 10 - 1 + 100 - 1 + 5 - - 10000 + 300 + + unlimited 10, 10, 35, 20, 10, 15 diff --git a/config/yugabyte/.DS_Store b/config/yugabyte/.DS_Store new file mode 100644 index 000000000..c72c44d17 Binary files /dev/null and b/config/yugabyte/.DS_Store differ diff --git a/config/yugabyte/batch_inserts/batch_insert_pg.yaml b/config/yugabyte/batch_inserts/batch_insert_pg.yaml new file mode 100644 index 000000000..4d5081685 --- /dev/null +++ b/config/yugabyte/batch_inserts/batch_insert_pg.yaml @@ -0,0 +1,64 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + serial: true + # time_secs: 300 + # active_terminals: 1 + rate: unlimited + warmup: 0 +microbenchmark: + # class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.batchinsert.BatchInsertPG + properties: + setAutoCommit: true +# create: +# - drop table if exists index_test_4; +# - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) +# - DROP PROCEDURE IF EXISTS insert_demo_hash; +# - CREATE PROCEDURE insert_demo_hash(_numRows int) +# LANGUAGE plpgsql +# AS $$ +# DECLARE +# BEGIN +# insert into index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) select n, n, n+100, (n%100)+1, (n%1000)+1, n%50, n*10, n%10, n*2, n, n, 'aaa'||(n%1000)+1, 'bbb'||n, 'ccc'||(n%100), '2022-12-10', RANDOM()::INT::BOOLEAN from generate_series(1,_numRows) n; +# END; +# $$; +# - call insert_demo_hash(1000); +# executeRules: +# - workload: BatchedInsert +# run: +# - name: insert_1m_rows +# weight: 100 +# queries: +# - query: INSERT INTO index_test_4 values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) +# count: 2000 +# bindings: +# - util: PrimaryIntGen +# params: +# - 1001 +# - 11000 +# - util: RandomNumber +# count: 10 +# params: +# - 1001 +# - 11000 +# - util: RandomAString +# count: 3 +# params: +# - 4 +# - 4 +# - util: RandomDate +# params: +# - 2007 +# - 2011 +# - util: RandomBoolean \ No newline at end of file diff --git a/config/yugabyte/batch_inserts/batch_insert_yb.yaml b/config/yugabyte/batch_inserts/batch_insert_yb.yaml new file mode 100644 index 000000000..2eeaa6ae6 --- /dev/null +++ b/config/yugabyte/batch_inserts/batch_insert_yb.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +#url: jdbc:yugabytedb://172.151.23.87:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + serial: true + # time_secs: 300 + # active_terminals: 1 + rate: unlimited + warmup: 0 +microbenchmark: + # class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.batchinsert.BatchInsertYB + properties: + setAutoCommit: true +# create: +# - drop table if exists index_test_4; +# - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) +# - DROP PROCEDURE IF EXISTS insert_demo_hash; +# - CREATE PROCEDURE insert_demo_hash(_numRows int) +# LANGUAGE plpgsql +# AS $$ +# DECLARE +# BEGIN +# insert into index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) select n, n, n+100, (n%100)+1, (n%1000)+1, n%50, n*10, n%10, n*2, n, n, 'aaa'||(n%1000)+1, 'bbb'||n, 'ccc'||(n%100), '2022-12-10', RANDOM()::INT::BOOLEAN from generate_series(1,_numRows) n; +# END; +# $$; +# - call insert_demo_hash(1000); +# executeRules: +# - workload: BatchedInsert +# run: +# - name: insert_1m_rows +# weight: 100 +# queries: +# - query: INSERT INTO index_test_4 values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) +# count: 2000 +# bindings: +# - util: PrimaryIntGen +# params: +# - 1001 +# - 11000 +# - util: RandomNumber +# count: 10 +# params: +# - 1001 +# - 11000 +# - util: RandomAString +# count: 3 +# params: +# - 4 +# - 4 +# - util: RandomDate +# params: +# - 2007 +# - 2011 +# - util: RandomBoolean \ No newline at end of file diff --git a/config/yugabyte/batch_inserts/sample_batch_insert.yaml b/config/yugabyte/batch_inserts/sample_batch_insert.yaml new file mode 100644 index 000000000..55aa7b5de --- /dev/null +++ b/config/yugabyte/batch_inserts/sample_batch_insert.yaml @@ -0,0 +1,55 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: null +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +collect_pg_stat_statements: true +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS demo_batch_insert; + - CREATE TABLE demo_batch_insert (id INT, col1 TEXT, col2 TEXT, col3 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo_batch_insert + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 10 + - name: col + count: 3 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: Insert + run: + - name: BatchInsert + weight: 100 + queries: + - query: INSERT INTO demo_batch_insert VALUES [(?,?,?,?)][pattern_count] + pattern_count: 5 + bindings: + - util: PrimaryIntGen + params: + - 100 + - 100000 + - util: RandomAString + count: 3 + params: + - 5 + - 5 diff --git a/config/yugabyte/bulkload/aurora/bulkload_goal1_aurora.yaml b/config/yugabyte/bulkload/aurora/bulkload_goal1_aurora.yaml new file mode 100644 index 000000000..4b725734f --- /dev/null +++ b/config/yugabyte/bulkload/aurora/bulkload_goal1_aurora.yaml @@ -0,0 +1,51 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: true +terminals: 1 +works: + work: + time: 60 + rate: unlimited + warmup: 0 + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + # Goal 1 - 1 :: create table with PK -> load data (no index) + tableName: orders + columns: 15 + rows: 3000000 + indexes: 0 + filePath: orders.csv + stringLength: 32 + +# # Goal 1 - 2 :: create table with PK -> create 1 index -> load data (1 index) +# tableName: orders +# columns: 15 +# rows: 3000000 +# indexes: 1 +# filePath: orders.csv +# stringLength: 32 + +# # Goal 1 - 3 :: create table with PK -> create 5 index -> load data (5 index) +# tableName: orders +# columns: 15 +# rows: 3000000 +# indexes: 5 +# filePath: orders.csv +# stringLength: 32 + + +# # Goal 1 - 4 :: create table with PK -> create 10 index -> load data (10 index) +# tableName: orders +# columns: 15 +# rows: 3000000 +# indexes: 10 +# filePath: orders.csv +# stringLength: 32 diff --git a/config/yugabyte/bulkload/aurora/bulkload_goal2_aurora.yaml b/config/yugabyte/bulkload/aurora/bulkload_goal2_aurora.yaml new file mode 100644 index 000000000..43cc8d249 --- /dev/null +++ b/config/yugabyte/bulkload/aurora/bulkload_goal2_aurora.yaml @@ -0,0 +1,62 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: true +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + # Goal2 - 1 :: create table with PK -> create 1 index -> Load data (1 index) + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: orders.csv + stringLength: 32 + create_index_before_load: true + create_index_after_load: false + +# # Goal2 - 2 :: create table with PK -> load data -> create 1 index +# tableName: orders +# columns: 15 +# rows: 3000000 +# indexes: 1 +# filePath: orders.csv +# stringLength: 32 +# create_index_before_load: false +# create_index_after_load: true +# +# # Goal2 - 3 :: create table with PK -> create 5 index -> Load data (5 index) +# tableName: orders +# columns: 15 +# rows: 3000000 +# indexes: 5 +# filePath: orders.csv +# stringLength: 32 +# create_index_before_load: true +# create_index_after_load: false +# +# # Goal2 - 2 :: create table with PK -> load data -> create 1 index +# tableName: orders +# columns: 15 +# rows: 3000000 +# indexes: 5 +# filePath: orders.csv +# stringLength: 32 +# create_index_before_load: false +# create_index_after_load: true + diff --git a/config/yugabyte/bulkload/aurora/bulkload_goal3_aurora.yaml b/config/yugabyte/bulkload/aurora/bulkload_goal3_aurora.yaml new file mode 100644 index 000000000..e91a2e43e --- /dev/null +++ b/config/yugabyte/bulkload/aurora/bulkload_goal3_aurora.yaml @@ -0,0 +1,42 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: true +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + # Goal3 - 1 :: create table with 15 fields -> load data for 3M rows (only PK) + tableName: orders + columns: 15 + rows: 3000000 + filePath: orders.csv + stringLength: 32 + +# # Goal3 - 2 :: create table with 15 fields -> load data for 30M rows (only PK) +# tableName: orders +# columns: 15 +# rows: 30000000 +# filePath: orders.csv +# stringLength: 32 +# +# # Goal3 - 3 :: create table with 15 fields -> load data for 300M rows (only PK) +# tableName: orders +# columns: 15 +# rows: 300000000 +# filePath: orders.csv +# stringLength: 32 diff --git a/config/yugabyte/bulkload/aurora/bulkload_goal4_aurora.yaml b/config/yugabyte/bulkload/aurora/bulkload_goal4_aurora.yaml new file mode 100644 index 000000000..4c79fdfde --- /dev/null +++ b/config/yugabyte/bulkload/aurora/bulkload_goal4_aurora.yaml @@ -0,0 +1,43 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: true +loaderthreads: 1 +terminals: 1 + +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + # Goal4 - 1 :: create table with 10 fields, 3M rows -> load data (only PK) + tableName: orders + columns: 10 + rows: 3000000 + filePath: orders.csv + stringLength: 32 + +# # Goal4 - 2 :: create table with 20 fields, 3M rows -> load data (only PK) +# tableName: orders +# columns: 20 +# rows: 3000000 +# filePath: orders.csv +# stringLength: 32 +# +# # Goal4 - 3 :: create table with 100 fields, 3M rows -> load data (only PK) +# tableName: orders +# columns: 100 +# rows: 3000000 +# filePath: orders.csv +# stringLength: 32 diff --git a/config/yugabyte/column_attributes/postgres/cattribG10_pg_increasingIDXFilter_varchar.yaml b/config/yugabyte/column_attributes/postgres/cattribG10_pg_increasingIDXFilter_varchar.yaml new file mode 100644 index 000000000..f6e486109 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG10_pg_increasingIDXFilter_varchar.yaml @@ -0,0 +1,116 @@ +#TEST FOR POSTGRES TABLES +#GOAL10 Lookup on a table with 25 column with increasing count of filter columns +#Projection: All columns +#Filter: Increasing column count | Index keys +#Schema: 25 columns in a table with varchar datatype +#Purpose: Impact of increasing filter column count +#TESTS: +#Time to fetch all columns based on 2 non indexed column +#Time to fetch all columns based on 5 non indexed column +#Time to fetch all columns based on 10 non indexed column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_2idx_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_5idx_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_10idx_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_2idx_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_id_5 varchar,col_varchar_id_6 varchar,col_varchar_id_7 varchar,col_varchar_id_8 varchar,col_varchar_id_9 varchar,col_varchar_id_10 varchar,col_varchar_id_11 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_25column_5idx_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_id_5 varchar,col_varchar_id_6 varchar,col_varchar_id_7 varchar,col_varchar_id_8 varchar,col_varchar_id_9 varchar,col_varchar_id_10 varchar,col_varchar_id_11 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_25column_10idx_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_id_5 varchar,col_varchar_id_6 varchar,col_varchar_id_7 varchar,col_varchar_id_8 varchar,col_varchar_id_9 varchar,col_varchar_id_10 varchar,col_varchar_id_11 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,PRIMARY KEY(col_varchar_id_1)); + - CREATE INDEX ON pkey_rangescan_fullTable_25column_2idx_1(col_bigint_id_2,col_bigint_id_3); + - CREATE INDEX ON pkey_rangescan_fullTable_25column_5idx_1(col_bigint_id_2,col_bigint_id_3,col_bigint_id_4,col_bigint_id_5,col_bigint_id_6); + - CREATE INDEX ON pkey_rangescan_fullTable_25column_10idx_1(col_bigint_id_2,col_bigint_id_3,col_bigint_id_4,col_bigint_id_5,col_bigint_id_6,col_bigint_id_7,col_bigint_id_8,col_bigint_id_9,col_bigint_id_10,col_bigint_id_11); + + loadRules: + - table: pkey_rangescan_fullTable_25column_2idx_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 11 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 14 + util: RandomAString + params: [ 16, 16 ] + - table: pkey_rangescan_fullTable_25column_5idx_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 11 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 14 + util: RandomAString + params: [ 16, 16 ] + - table: pkey_rangescan_fullTable_25column_10idx_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 11 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 14 + util: RandomAString + params: [ 16, 16 ] + executeRules: + - workload: cattribG10_pg_idxRange_table25column_2idxCol_noRowsFetched + run: + - name: idxRange_table25column_2idxCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_2idx_1 where col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_3='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG10_pg_idxRange_table25column_2idxCol_1RowFetched + run: + - name: idxRange_table25column_2idxCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_2idx_1 where col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_3='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG10_pg_idxRange_table25column_5idxCol_noRowsFetched + run: + - name: idxRange_table25column_5idxCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_5idx_1 where col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_3='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_4='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_5='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_6='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG10_pg_idxRange_table25column_5idxCol_1RowFetched + run: + - name: idxRange_table25column_5idxCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_5idx_1 where col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_3='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_4='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_5='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_6='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG10_pg_idxRange_table25column_10idxCol_noRowsFetched + run: + - name: idxRange_table25column_10idxCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_10idx_1 where col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_3='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_4='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_5='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_6='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_7='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_8='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_9='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_10='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_11='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG10_pg_idxRange_table25column_10idxCol_1RowFetched + run: + - name: idxRange_table25column_10idxCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_10idx_1 where col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_3='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_4='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_5='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_6='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_7='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_8='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_9='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_10='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_11='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + diff --git a/config/yugabyte/column_attributes/postgres/cattribG11_pg_increasingIDXFilter_bigint.yaml b/config/yugabyte/column_attributes/postgres/cattribG11_pg_increasingIDXFilter_bigint.yaml new file mode 100644 index 000000000..f638d7464 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG11_pg_increasingIDXFilter_bigint.yaml @@ -0,0 +1,113 @@ +#TEST FOR POSTGRES TABLES +#GOAL11 Lookup on a table with 25 column with increasing count of filter columns +#Projection: All columns +#Filter: Increasing column count | Non indexed columns +#Schema: 25 columns in a table with bigint datatype +#Purpose: Impact of increasing filter column count +#TESTS: +#Time to fetch all columns based on 2 non indexed column +#Time to fetch all columns based on 5 non indexed column +#Time to fetch all columns based on 10 non indexed column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_bigint_2idx_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_bigint_5idx_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_bigint_10idx_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_bigint_2idx_1(col_bigint_id_1 bigint,col_bigint_id_2 bigint,col_bigint_id_3 bigint,col_bigint_id_4 bigint,col_bigint_id_5 bigint,col_bigint_id_6 bigint,col_bigint_id_7 bigint,col_bigint_id_8 bigint,col_bigint_id_9 bigint,col_bigint_id_10 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint,col_bigint_15 bigint , PRIMARY KEY(col_bigint_id_1,col_bigint_id_2)); + - CREATE TABLE pkey_rangescan_fullTable_25column_bigint_5idx_1(col_bigint_id_1 bigint,col_bigint_id_2 bigint,col_bigint_id_3 bigint,col_bigint_id_4 bigint,col_bigint_id_5 bigint,col_bigint_id_6 bigint,col_bigint_id_7 bigint,col_bigint_id_8 bigint,col_bigint_id_9 bigint,col_bigint_id_10 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint,col_bigint_15 bigint , PRIMARY KEY(col_bigint_id_1,col_bigint_id_2,col_bigint_id_3,col_bigint_id_4,col_bigint_id_5)); + - CREATE TABLE pkey_rangescan_fullTable_25column_bigint_10idx_1(col_bigint_id_1 bigint,col_bigint_id_2 bigint,col_bigint_id_3 bigint,col_bigint_id_4 bigint,col_bigint_id_5 bigint,col_bigint_id_6 bigint,col_bigint_id_7 bigint,col_bigint_id_8 bigint,col_bigint_id_9 bigint,col_bigint_id_10 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint,col_bigint_15 bigint , PRIMARY KEY(col_bigint_id_1,col_bigint_id_2,col_bigint_id_3,col_bigint_id_4,col_bigint_id_5,col_bigint_id_6,col_bigint_id_7,col_bigint_id_8,col_bigint_id_9,col_bigint_id_10)); + loadRules: + - table: pkey_rangescan_fullTable_25column_bigint_2idx_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 10 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 15 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_25column_bigint_5idx_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 10 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 15 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_25column_bigint_10idx_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 10 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 15 + util: RandomNumber + params: [1, 1000000] + + executeRules: + - workload: cattribG11_pg_idxRange_table25column_2idx_bigint_noRowsFetched + run: + - name: idxRange_table25column_2idx_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_2idx_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 + - workload: cattribG11_pg_idxRange_table25column_2idx_bigint_1RowFetched + run: + - name: idxRange_table25column_2idx_bigint_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_2idx_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 + - workload: cattribG11_pg_idxRange_table25column_5idx_bigint_noRowsFetched + run: + - name: idxRange_table25column_5idx_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_5idx_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 and col_bigint_id_3=1000001 and col_bigint_id_4=1000001 and col_bigint_id_5=1000001 + - workload: cattribG11_pg_idxRange_table25column_5idx_bigint_1RowFetched + run: + - name: idxRange_table25column_5idx_bigint_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_5idx_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 and col_bigint_id_3=999998 and col_bigint_id_4=999998 and col_bigint_id_5=999998 + - workload: cattribG11_pg_idxRange_table25column_10idx_bigint_noRowsFetched + run: + - name: idxRange_table25column_10idx_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_10idx_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 and col_bigint_id_3=1000001 and col_bigint_id_4=1000001 and col_bigint_id_5=1000001 and col_bigint_id_6=1000001 and col_bigint_id_7=1000001 and col_bigint_id_8=1000001 and col_bigint_id_9=1000001 and col_bigint_id_10=1000001 + - workload: cattribG11_pg_idxRange_table25column_10idx_bigint_1RowFetched + run: + - name: idxRange_table25column_10idx_bigint_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_10idx_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 and col_bigint_id_3=999998 and col_bigint_id_4=999998 and col_bigint_id_5=999998 and col_bigint_id_6=999998 and col_bigint_id_7=999998 and col_bigint_id_8=999998 and col_bigint_id_9=999998 and col_bigint_id_10=999998 + diff --git a/config/yugabyte/column_attributes/postgres/cattribG12_pg_increasingPK_length_varchar.yaml b/config/yugabyte/column_attributes/postgres/cattribG12_pg_increasingPK_length_varchar.yaml new file mode 100644 index 000000000..35236c1eb --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG12_pg_increasingPK_length_varchar.yaml @@ -0,0 +1,116 @@ +#TEST FOR POSTGRES TABLES +#GOAL12 Range lookup with different column size +#Projection: Increasing column size(non indexed) +#Filter: Primary key +#Schema: 25 columns in a table with varchar datatype +#Purpose: Impact of increasing column size +#TESTS: +#Time to fetch 1 column of 64 bytes +#Time to fetch 1 column of 256 bytes +#Time to fetch 1 column of 512 bytes +#Time to fetch 1 column of 5k bytes +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_64blength_rangescan_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_256blength_rangescan_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_512blength_rangescan_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_5120blength_rangescan_fullTable_25column_1; + - CREATE TABLE pkey_64blength_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_256blength_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_512blength_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_5120blength_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar,PRIMARY KEY(col_varchar_id_1)); + + loadRules: + - table: pkey_64blength_rangescan_fullTable_25column_1 + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 64] + - name: col_varchar_ + count: 1 + util: RandomAString + params: [16, 16] + - table: pkey_256blength_rangescan_fullTable_25column_1 + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 256] + - name: col_varchar_ + count: 9 + util: RandomAString + params: [16, 16] + - table: pkey_512blength_rangescan_fullTable_25column_1 + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 512] + - name: col_varchar_ + count: 24 + util: RandomAString + params: [16, 16] + - table: pkey_5120blength_rangescan_fullTable_25column_1 + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 5120] + - name: col_varchar_ + count: 99 + util: RandomAString + params: [16, 16] + + executeRules: + - workload: cattribG12_pg_pkey64b_rangescan_fullTable_table25column + run: + - name: pkey64b_rangescan_fullTable_table25column + weight: 100 + queries: + - query: select * from pkey_64blength_rangescan_fullTable_25column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG12_pg_pkey256b_rangescan_fullTable_table25column + run: + - name: pkey256b_rangescan_fullTable_table25column + weight: 100 + queries: + - query: select * from pkey_256blength_rangescan_fullTable_25column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG12_pg_pkey512b_rangescan_fullTable_table25column + run: + - name: pkey512b_rangescan_fullTable_table25column + weight: 100 + queries: + - query: select * from pkey_512blength_rangescan_fullTable_25column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG12_pg_pkey5120b_rangescan_fullTable_table25column + run: + - name: pkey5120b_rangescan_fullTable_table25column + weight: 100 + queries: + - query: select * from pkey_5120blength_rangescan_fullTable_25column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' diff --git a/config/yugabyte/column_attributes/postgres/cattribG1_pg_increasingColumnCountVarchar.yaml b/config/yugabyte/column_attributes/postgres/cattribG1_pg_increasingColumnCountVarchar.yaml new file mode 100644 index 000000000..daaa942d9 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG1_pg_increasingColumnCountVarchar.yaml @@ -0,0 +1,115 @@ +#TEST FOR POSTGRES TABLES +#GOAL1 Range lookup(PK) on a column of varchar datatype with increasing column count +#Projection: Increasing number of columns +#Filter: On Primary key +#Schema: Same number of column as in the projection +#TESTS: +#Projection: Increasing number of columns(Select *) +#Filter: On Primary key +#Schema: Same number of column as in the projection +#Purpose: Full table scan time with increasing columns being fetched +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_2column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + - CREATE TABLE pkey_rangescan_fullTable_2column_1(col_varchar_id_1 varchar,col_varchar_1 varchar,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_10column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_100column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar ,col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar ,col_varchar_25 varchar ,col_varchar_26 varchar ,col_varchar_27 varchar ,col_varchar_28 varchar ,col_varchar_29 varchar ,col_varchar_30 varchar ,col_varchar_31 varchar ,col_varchar_32 varchar ,col_varchar_33 varchar ,col_varchar_34 varchar ,col_varchar_35 varchar ,col_varchar_36 varchar ,col_varchar_37 varchar ,col_varchar_38 varchar ,col_varchar_39 varchar ,col_varchar_40 varchar ,col_varchar_41 varchar ,col_varchar_42 varchar ,col_varchar_43 varchar ,col_varchar_44 varchar ,col_varchar_45 varchar ,col_varchar_46 varchar ,col_varchar_47 varchar ,col_varchar_48 varchar ,col_varchar_49 varchar ,col_varchar_50 varchar ,col_varchar_51 varchar ,col_varchar_52 varchar ,col_varchar_53 varchar ,col_varchar_54 varchar ,col_varchar_55 varchar ,col_varchar_56 varchar ,col_varchar_57 varchar ,col_varchar_58 varchar ,col_varchar_59 varchar ,col_varchar_60 varchar ,col_varchar_61 varchar ,col_varchar_62 varchar ,col_varchar_63 varchar ,col_varchar_64 varchar ,col_varchar_65 varchar ,col_varchar_66 varchar ,col_varchar_67 varchar ,col_varchar_68 varchar ,col_varchar_69 varchar ,col_varchar_70 varchar ,col_varchar_71 varchar ,col_varchar_72 varchar ,col_varchar_73 varchar ,col_varchar_74 varchar ,col_varchar_75 varchar ,col_varchar_76 varchar ,col_varchar_77 varchar ,col_varchar_78 varchar ,col_varchar_79 varchar ,col_varchar_80 varchar ,col_varchar_81 varchar ,col_varchar_82 varchar ,col_varchar_83 varchar ,col_varchar_84 varchar ,col_varchar_85 varchar ,col_varchar_86 varchar ,col_varchar_87 varchar ,col_varchar_88 varchar ,col_varchar_89 varchar ,col_varchar_90 varchar ,col_varchar_91 varchar ,col_varchar_92 varchar ,col_varchar_93 varchar ,col_varchar_94 varchar ,col_varchar_95 varchar ,col_varchar_96 varchar ,col_varchar_97 varchar ,col_varchar_98 varchar ,col_varchar_99 varchar,PRIMARY KEY(col_varchar_id_1)); + + loadRules: + - table: pkey_rangescan_fullTable_2column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 128] + - name: col_varchar_ + count: 1 + util: RandomAString + params: [16, 16] + - table: pkey_rangescan_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 128] + - name: col_varchar_ + count: 9 + util: RandomAString + params: [16, 16] + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 128] + - name: col_varchar_ + count: 24 + util: RandomAString + params: [16, 16] + - table: pkey_rangescan_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 128] + - name: col_varchar_ + count: 99 + util: RandomAString + params: [16, 16] + + executeRules: + - workload: cattribG1_pg_pkey_rangescan_fullTable_table2column_fetch2column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table2column_fetch2column_1MRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_2column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG1_pg_pkey_rangescan_fullTable_table10column_fetch10column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table10column_fetch10column_1MRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_10column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG1_pg_pkey_rangescan_fullTable_table25column_fetch25column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch25column_1MRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG1_pg_pkey_rangescan_fullTable_table100column_fetch100column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table100column_fetch100column_1MRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_100column_1 where col_varchar_id_1 = '1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' diff --git a/config/yugabyte/column_attributes/postgres/cattribG2_pg_increasingColumnCountVarcharProjection_0RowsFetched.yaml b/config/yugabyte/column_attributes/postgres/cattribG2_pg_increasingColumnCountVarcharProjection_0RowsFetched.yaml new file mode 100644 index 000000000..7c8d37af9 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG2_pg_increasingColumnCountVarcharProjection_0RowsFetched.yaml @@ -0,0 +1,66 @@ +#TEST FOR POSTGRES TABLES +#GOAL2 Range lookup on varying column count fetched on a table with 25 columns. Full table scan with 0 rows returned +#Projection: Increasing number of columns(Select cols) +#Filter: On Primary key +#Schema: 25 columns in a table with varchar datatype +#Purpose: Full table scan time with increasing columns being fetched +#TESTS: +#Time to fetch 2 columns based on one PK +#Time to fetch 5 columns based on one PK +#Time to fetch 15 columns based on one PK +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar,PRIMARY KEY(col_varchar_id_1)); + + loadRules: + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 24 + util: RandomAString + params: [ 16, 16 ] + executeRules: + - workload: cattribG2_pg_pkey_rangescan_fullTable_table25column_fetch2column_0RowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch2column_0RowsFetched + weight: 100 + queries: + - query: select col_varchar_1,col_varchar_2 from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'1000001aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG2_pg_pkey_rangescan_fullTable_table25column_fetch5column_0RowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch5column_0RowsFetched + weight: 100 + queries: + - query: select col_varchar_1,col_varchar_2,col_varchar_3,col_varchar_4,col_varchar_5 from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'1000001aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG2_pg_pkey_rangescan_fullTable_table25column_fetch15column_0RowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch15column_0RowsFetched + weight: 100 + queries: + - query: select col_varchar_1,col_varchar_2,col_varchar_3,col_varchar_4,col_varchar_5,col_varchar_6,col_varchar_7,col_varchar_8,col_varchar_9,col_varchar_10,col_varchar_11,col_varchar_12,col_varchar_13,col_varchar_14,col_varchar_15 from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'1000001aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ No newline at end of file diff --git a/config/yugabyte/column_attributes/postgres/cattribG3_pg_increasingColumnCountVarcharProjection_1MRowsFetched.yaml b/config/yugabyte/column_attributes/postgres/cattribG3_pg_increasingColumnCountVarcharProjection_1MRowsFetched.yaml new file mode 100644 index 000000000..94cd1f3a9 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG3_pg_increasingColumnCountVarcharProjection_1MRowsFetched.yaml @@ -0,0 +1,66 @@ +#TEST FOR POSTGRES TABLES +#GOAL2 Range lookup on varying column count fetched on a table with 25 columns. Full table scan with all rows returned +#Projection: Increasing number of columns +#Filter: On Primary key +#Schema: 25 columns in a table with varchar datatype +#Purpose: Full table scan time + row handling(de/serialise, encoding) for increasing fetched column being fetched +#TESTS: +#Time to fetch 2 columns based on one PK +#Time to fetch 5 columns based on one PK +#Time to fetch 15 columns based on one PK +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,col_varchar_22 varchar ,col_varchar_23 varchar ,col_varchar_24 varchar,PRIMARY KEY(col_varchar_id_1)); + + loadRules: + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 24 + util: RandomAString + params: [ 16, 16 ] + executeRules: + - workload: cattribG3_pg_pkey_rangescan_fullTable_table25column_fetch2column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch2column_1MRowsFetched + weight: 100 + queries: + - query: select col_varchar_1,col_varchar_2 from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG3_pg_pkey_rangescan_fullTable_table25column_fetch5column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch5column_1MRowsFetched + weight: 100 + queries: + - query: select col_varchar_1,col_varchar_2,col_varchar_3,col_varchar_4,col_varchar_5 from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG3_pg_pkey_rangescan_fullTable_table25column_fetch15column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch15column_1MRowsFetched + weight: 100 + queries: + - query: select col_varchar_1,col_varchar_2,col_varchar_3,col_varchar_4,col_varchar_5,col_varchar_6,col_varchar_7,col_varchar_8,col_varchar_9,col_varchar_10,col_varchar_11,col_varchar_12,col_varchar_13,col_varchar_14,col_varchar_15 from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ No newline at end of file diff --git a/config/yugabyte/column_attributes/postgres/cattribG4_pg_increasingColumnCountBigIntProjection_1MRowsFetched.yaml b/config/yugabyte/column_attributes/postgres/cattribG4_pg_increasingColumnCountBigIntProjection_1MRowsFetched.yaml new file mode 100644 index 000000000..25e402d97 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG4_pg_increasingColumnCountBigIntProjection_1MRowsFetched.yaml @@ -0,0 +1,66 @@ +#TEST FOR POSTGRES TABLES +#GOAL4 Range lookup on varying column count fetched on a table with 25 columns. Full table scan with all rows returned +#Projection: Increasing number of columns +#Filter: On Primary key +#Schema: 25 columns in a table with bigint datatype +#Purpose: Full table scan time + row handling(de/serialise, encoding) for increasing fetched column being fetched +#TESTS: +#Time to fetch 2 columns based on one PK +#Time to fetch 5 columns based on one PK +#Time to fetch 15 columns based on one PK +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint ,col_bigint_16 bigint ,col_bigint_17 bigint ,col_bigint_18 bigint ,col_bigint_19 bigint ,col_bigint_20 bigint ,col_bigint_21 bigint ,col_bigint_22 bigint ,col_bigint_23 bigint ,col_bigint_24 bigint,PRIMARY KEY(col_bigint_id_1)); + + loadRules: + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 24 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: cattribG4_pg_pkey_rangescan_fullTable_table25column_bigint_fetch2column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_bigint_fetch2column_1MRowsFetched + weight: 100 + queries: + - query: select col_bigint_1,col_bigint_2 where col_varchar_id_1>1 + - workload: cattribG4_pg_pkey_rangescan_fullTable_table25column_bigint_fetch5column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_bigint_fetch5column_1MRowsFetched + weight: 100 + queries: + - query: select col_bigint_1,col_bigint_2,col_bigint_3,col_bigint_4,col_bigint_5 where col_varchar_id_1>1 + - workload: cattribG4_pg_pkey_rangescan_fullTable_table25column_bigint_fetch15column_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_bigint_fetch15column_1MRowsFetched + weight: 100 + queries: + - query: select col_bigint_1,col_bigint_2,col_bigint_3,col_bigint_4,col_bigint_5,col_bigint_6,col_bigint_7,col_bigint_8,col_bigint_9,col_bigint_10,col_bigint_11,col_bigint_12,col_bigint_13,col_bigint_14,col_bigint_15 from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>1 \ No newline at end of file diff --git a/config/yugabyte/column_attributes/postgres/cattribG5_pg_increasingColumnCountVarcharProjection_1MRowsFetched_PKvsIndexvsCovering.yaml b/config/yugabyte/column_attributes/postgres/cattribG5_pg_increasingColumnCountVarcharProjection_1MRowsFetched_PKvsIndexvsCovering.yaml new file mode 100644 index 000000000..f0944f3d2 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG5_pg_increasingColumnCountVarcharProjection_1MRowsFetched_PKvsIndexvsCovering.yaml @@ -0,0 +1,63 @@ +#TEST FOR POSTGRES TABLES +#GOAL5 Range lookup on varying column count fetched on a table with 25 columns. Full table scan with all rows returned +#Projection: Indexed column or covered column +#Filter: On Index key +#Schema: 25 columns in a table with varchar datatype +#Purpose: PK vs indexed vs covered column +#TESTS: +#Time to fetch 2 column based on one indexed column +#Time to fetch 2 covered column based on one indexed column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_idx_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_idxcover_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_idx_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,PRIMARY KEY(col_varchar_id_1)); + - CREATE INDEX ON pkey_rangescan_fullTable_25column_idx_1(col_varchar_id_2); + - CREATE TABLE pkey_rangescan_fullTable_25column_idxcover_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar ,col_varchar_16 varchar ,col_varchar_17 varchar ,col_varchar_18 varchar ,col_varchar_19 varchar ,col_varchar_20 varchar ,col_varchar_21 varchar ,PRIMARY KEY(col_varchar_id_1)); + - CREATE INDEX ON pkey_rangescan_fullTable_25column_idx_1(col_varchar_id_2) INCLUDE (col_varchar_id_3,col_varchar_id_4); + + loadRules: + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 4 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 21 + util: RandomAString + params: [ 16, 16 ] + executeRules: + - workload: cattribG5_pg_pkey_rangescan_fullTable_table25column_fetch2column_usingIdx_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch2column_usingIdx_1MRowsFetched + weight: 100 + queries: + - query: select col_varchar_id_3,col_varchar_id_4 from pkey_rangescan_fullTable_25column_idx_1 where col_varchar_id_2>'1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG5_pg_pkey_rangescan_fullTable_table25column_fetch2CoveredColumn_usingIdx_1MRowsFetched + run: + - name: pkey_rangescan_fullTable_table25column_fetch2CoveredColumn_usingIdx_1MRowsFetched + weight: 100 + queries: + - query: select col_varchar_id_3,col_varchar_id_4 from pkey_rangescan_fullTable_25column_idxcover_1 where col_varchar_id_2>'1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' diff --git a/config/yugabyte/column_attributes/postgres/cattribG6_pg_icreasingNonIndexedFilter_varchar.yaml b/config/yugabyte/column_attributes/postgres/cattribG6_pg_icreasingNonIndexedFilter_varchar.yaml new file mode 100644 index 000000000..e9dd3b884 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG6_pg_icreasingNonIndexedFilter_varchar.yaml @@ -0,0 +1,86 @@ +#TEST FOR POSTGRES TABLES +#GOAL6 Lookup on a table with 25 column with increasing count of filter columns +#Projection: All columns +#Filter: Increasing column count | Non indexed columns +#Schema: 25 columns in a table with varchar datatype +#Purpose: Impact of increasing filter column count +#TESTS: +#Time to fetch all columns based on 2 non indexed column +#Time to fetch all columns based on 5 non indexed column +#Time to fetch all columns based on 10 non indexed column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_id_5 varchar,col_varchar_id_6 varchar,col_varchar_id_7 varchar,col_varchar_id_8 varchar,col_varchar_id_9 varchar,col_varchar_id_10 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar); + + loadRules: + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 10 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 15 + util: RandomAString + params: [ 16, 16 ] + + executeRules: + - workload: cattribG6_pg_seqscan_table25column_2nonindexedCol_noRowsFetched + run: + - name: seqscan_table25column_2nonindexedCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG6_pg_seqscan_table25column_2nonindexedCol_1RowFetched + run: + - name: seqscan_table25column_2nonindexedCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG6_pg_seqscan_table25column_5nonindexedCol_noRowsFetched + run: + - name: seqscan_table25column_5nonindexedCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_3='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_4='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_5='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG6_pg_seqscan_table25column_5nonindexedCol_1RowFetched + run: + - name: seqscan_table25column_5nonindexedCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_3='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_4='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_5='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG6_pg_seqscan_table25column_10nonindexedCol_noRowsFetched + run: + - name: seqscan_table25column_10nonindexedCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_3='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_4='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_5='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_6='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_7='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_8='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_9='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_10='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG6_pg_seqscan_table25column_10nonindexedCol_1RowFetched + run: + - name: pg_seqscan_table25column_10nonindexedCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_3='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_4='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_5='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_6='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_7='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_8='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_9='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_10='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + diff --git a/config/yugabyte/column_attributes/postgres/cattribG7_pg_icreasingNonIndexedFilter_bigint.yaml b/config/yugabyte/column_attributes/postgres/cattribG7_pg_icreasingNonIndexedFilter_bigint.yaml new file mode 100644 index 000000000..cf0235a31 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG7_pg_icreasingNonIndexedFilter_bigint.yaml @@ -0,0 +1,86 @@ +#TEST FOR POSTGRES TABLES +#GOAL7 Lookup on a table with 25 column with increasing count of filter columns +#Projection: All columns +#Filter: Increasing column count | Non indexed columns +#Schema: 25 columns in a table with bigint datatype +#Purpose: Impact of increasing filter column count +#TESTS: +#Time to fetch all columns based on 2 non indexed column +#Time to fetch all columns based on 5 non indexed column +#Time to fetch all columns based on 10 non indexed column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS noidx_rangescan_fullTable_bigint_25column_1; + - CREATE TABLE noidx_rangescan_fullTable_bigint_25column_1(col_bigint_id_1 bigint,col_bigint_id_2 bigint,col_bigint_id_3 bigint,col_bigint_id_4 bigint,col_bigint_id_5 bigint,col_bigint_id_6 bigint,col_bigint_id_7 bigint,col_bigint_id_8 bigint,col_bigint_id_9 bigint,col_bigint_id_10 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint); + + loadRules: + - table: pkey_rangescan_fullTable_bigint_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 10 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 15 + util: RandomNumber + params: [1, 1000000] + + executeRules: + - workload: cattribG7_pg_seqscan_table25column_2nonindexedCol_bigint_noRowsFetched + run: + - name: seqscan_table25column_2nonindexedCol_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from noidx_rangescan_fullTable_bigint_25column_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 + - workload: cattribG7_pg_seqscan_table25column_2nonindexedCol_bigint_1RowFetched + run: + - name: seqscan_table25column_2nonindexedCol_bigint_1RowFetched + weight: 100 + queries: + - query: select * from noidx_rangescan_fullTable_bigint_25column_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 + - workload: cattribG7_pg_seqscan_table25column_5nonindexedCol_bigint_noRowsFetched + run: + - name: seqscan_table25column_5nonindexedCol_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from noidx_rangescan_fullTable_bigint_25column_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 and col_bigint_id_3=1000001 and col_bigint_id_4=1000001 and col_bigint_id_5=1000001 + - workload: cattribG7_pg_seqscan_table25column_5nonindexedCol_bigint_1RowFetched + run: + - name: seqscan_table25column_5nonindexedCol_bigint_1RowFetched + weight: 100 + queries: + - query: select * from noidx_rangescan_fullTable_bigint_25column_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 and col_bigint_id_3=999998 and col_bigint_id_4=999998 and col_bigint_id_5=999998 + - workload: cattribG7_pg_seqscan_table25column_10nonindexedCol_bigint_noRowsFetched + run: + - name: seqscan_table25column_10nonindexedCol_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from noidx_rangescan_fullTable_bigint_25column_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 and col_bigint_id_3=1000001 and col_bigint_id_4=1000001 and col_bigint_id_5=1000001 and col_bigint_id_6=1000001 and col_bigint_id_7=1000001 and col_bigint_id_8=1000001 and col_bigint_id_9=1000001 and col_bigint_id_10=1000001 + - workload: cattribG7_pg_seqscan_table25column_10nonindexedCol_bigint_1RowFetched + run: + - name: pg_seqscan_table25column_10nonindexedCol_bigint_1RowFetched + weight: 100 + queries: + - query: select * from noidx_rangescan_fullTable_bigint_25column_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 and col_bigint_id_3=999998 and col_bigint_id_4=999998 and col_bigint_id_5=999998 and col_bigint_id_6=999998 and col_bigint_id_7=999998 and col_bigint_id_8=999998 and col_bigint_id_9=999998 and col_bigint_id_10=999998 + diff --git a/config/yugabyte/column_attributes/postgres/cattribG8_pg_increasingPKFilter_varchar.yaml b/config/yugabyte/column_attributes/postgres/cattribG8_pg_increasingPKFilter_varchar.yaml new file mode 100644 index 000000000..68c63165b --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG8_pg_increasingPKFilter_varchar.yaml @@ -0,0 +1,113 @@ +#TEST FOR POSTGRES TABLES +#GOAL8 Lookup on a table with 25 column with increasing count of filter columns +#Projection: All columns +#Filter: Increasing column count | Primary Key +#Schema: 25 columns in a table with varchar datatype +#Purpose: Impact of increasing filter column count +#TESTS: +#Time to fetch all columns based on 2 non indexed column +#Time to fetch all columns based on 5 non indexed column +#Time to fetch all columns based on 10 non indexed column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_2pk_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_5pk_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_10pk_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_10pk_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_id_5 varchar,col_varchar_id_6 varchar,col_varchar_id_7 varchar,col_varchar_id_8 varchar,col_varchar_id_9 varchar,col_varchar_id_10 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar, PRIMARY KEY(col_varchar_id_1,col_varchar_id_2)); + - CREATE TABLE pkey_rangescan_fullTable_25column_10pk_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_id_5 varchar,col_varchar_id_6 varchar,col_varchar_id_7 varchar,col_varchar_id_8 varchar,col_varchar_id_9 varchar,col_varchar_id_10 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar, PRIMARY KEY(col_varchar_id_1,col_varchar_id_2,col_varchar_id_3,col_varchar_id_4,col_varchar_id_5)); + - CREATE TABLE pkey_rangescan_fullTable_25column_10pk_1(col_varchar_id_1 varchar,col_varchar_id_2 varchar,col_varchar_id_3 varchar,col_varchar_id_4 varchar,col_varchar_id_5 varchar,col_varchar_id_6 varchar,col_varchar_id_7 varchar,col_varchar_id_8 varchar,col_varchar_id_9 varchar,col_varchar_id_10 varchar,col_varchar_1 varchar ,col_varchar_2 varchar ,col_varchar_3 varchar ,col_varchar_4 varchar ,col_varchar_5 varchar ,col_varchar_6 varchar ,col_varchar_7 varchar ,col_varchar_8 varchar ,col_varchar_9 varchar, col_varchar_10 varchar ,col_varchar_11 varchar ,col_varchar_12 varchar ,col_varchar_13 varchar ,col_varchar_14 varchar ,col_varchar_15 varchar, PRIMARY KEY(col_varchar_id_1,col_varchar_id_2,col_varchar_id_3,col_varchar_id_4,col_varchar_id_5,col_varchar_id_6,col_varchar_id_7.col_varchar_id_8,col_varchar_id_9,col_varchar_id_10)); + + loadRules: + - table: pkey_rangescan_fullTable_25column_2pk_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 10 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 15 + util: RandomAString + params: [ 16, 16 ] + - table: pkey_rangescan_fullTable_25column_5pk_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 10 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 15 + util: RandomAString + params: [ 16, 16 ] + - table: pkey_rangescan_fullTable_25column_10pk_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 10 + util: PrimaryStringGen + params: [ 1, 128 ] + - name: col_varchar_ + count: 15 + util: RandomAString + params: [ 16, 16 ] + executeRules: + - workload: cattribG8_pg_seqscan_table25column_2pkCol_noRowsFetched + run: + - name: seqscan_table25column_2pkCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_2pk_1 where col_varchar_id_1='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG8_pg_seqscan_table25column_2pkCol_1RowFetched + run: + - name: seqscan_table25column_2pkCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_2pk_1 where col_varchar_id_1='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG8_pg_seqscan_table25column_5pkCol_noRowsFetched + run: + - name: seqscan_table25column_5pkCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_5pk_1 where col_varchar_id_1='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_3='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_4='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_5='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG8_pg_seqscan_table25column_5pkCol_1RowFetched + run: + - name: seqscan_table25column_5pkCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_5pk_1 where col_varchar_id_1='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_3='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_4='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_5='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribG8_pg_seqscan_table25column_10pkCol_noRowsFetched + run: + - name: seqscan_table25column_10pkCol_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_10pk_1 where col_varchar_id_1='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_2='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_3='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_4='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_5='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_6='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_7='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_8='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_9='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' and col_varchar_id_10='1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab' + - workload: cattribG8_pg_seqscan_table25column_10pkCol_1RowFetched + run: + - name: pg_seqscan_table25column_10pkCol_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_10pk_1 where col_varchar_id_1='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_2='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_3='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_4='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_5='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_6='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_7='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_8='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_9='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' and col_varchar_id_10='999998aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + diff --git a/config/yugabyte/column_attributes/postgres/cattribG9_pg_increasingPKFilter_bigint.yaml b/config/yugabyte/column_attributes/postgres/cattribG9_pg_increasingPKFilter_bigint.yaml new file mode 100644 index 000000000..9297e8058 --- /dev/null +++ b/config/yugabyte/column_attributes/postgres/cattribG9_pg_increasingPKFilter_bigint.yaml @@ -0,0 +1,113 @@ +#TEST FOR POSTGRES TABLES +#GOAL9 Lookup on a table with 25 column with increasing count of filter columns +#Projection: All columns +#Filter: Increasing column count | Non indexed columns +#Schema: 25 columns in a table with bigint datatype +#Purpose: Impact of increasing filter column count +#TESTS: +#Time to fetch all columns based on 2 non indexed column +#Time to fetch all columns based on 5 non indexed column +#Time to fetch all columns based on 10 non indexed column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_bigint_2pk_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_bigint_5pk_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_bigint_10pk_1; + - CREATE TABLE pkey_rangescan_fullTable_25column_bigint_2pk_1(col_bigint_id_1 bigint,col_bigint_id_2 bigint,col_bigint_id_3 bigint,col_bigint_id_4 bigint,col_bigint_id_5 bigint,col_bigint_id_6 bigint,col_bigint_id_7 bigint,col_bigint_id_8 bigint,col_bigint_id_9 bigint,col_bigint_id_10 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint,col_bigint_15 bigint , PRIMARY KEY(col_bigint_id_1,col_bigint_id_2)); + - CREATE TABLE pkey_rangescan_fullTable_25column_bigint_5pk_1(col_bigint_id_1 bigint,col_bigint_id_2 bigint,col_bigint_id_3 bigint,col_bigint_id_4 bigint,col_bigint_id_5 bigint,col_bigint_id_6 bigint,col_bigint_id_7 bigint,col_bigint_id_8 bigint,col_bigint_id_9 bigint,col_bigint_id_10 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint,col_bigint_15 bigint , PRIMARY KEY(col_bigint_id_1,col_bigint_id_2,col_bigint_id_3,col_bigint_id_4,col_bigint_id_5)); + - CREATE TABLE pkey_rangescan_fullTable_25column_bigint_10pk_1(col_bigint_id_1 bigint,col_bigint_id_2 bigint,col_bigint_id_3 bigint,col_bigint_id_4 bigint,col_bigint_id_5 bigint,col_bigint_id_6 bigint,col_bigint_id_7 bigint,col_bigint_id_8 bigint,col_bigint_id_9 bigint,col_bigint_id_10 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint, col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint,col_bigint_15 bigint , PRIMARY KEY(col_bigint_id_1,col_bigint_id_2,col_bigint_id_3,col_bigint_id_4,col_bigint_id_5,col_bigint_id_6,col_bigint_id_7,col_bigint_id_8,col_bigint_id_9,col_bigint_id_10)); + loadRules: + - table: pkey_rangescan_fullTable_25column_bigint_2pk_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 10 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 15 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_25column_bigint_5pk_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 10 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 15 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_25column_bigint_10pk_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 10 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 15 + util: RandomNumber + params: [1, 1000000] + + executeRules: + - workload: cattribG9_pg_seqscan_table25column_2pk_bigint_noRowsFetched + run: + - name: seqscan_table25column_2pk_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_2pk_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 + - workload: cattribG9_pg_seqscan_table25column_2pk_bigint_1RowFetched + run: + - name: seqscan_table25column_2pk_bigint_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_2pk_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 + - workload: cattribG9_pg_seqscan_table25column_5pk_bigint_noRowsFetched + run: + - name: seqscan_table25column_5pk_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_5pk_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 and col_bigint_id_3=1000001 and col_bigint_id_4=1000001 and col_bigint_id_5=1000001 + - workload: cattribG9_pg_seqscan_table25column_5pk_bigint_1RowFetched + run: + - name: seqscan_table25column_5pk_bigint_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_5pk_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 and col_bigint_id_3=999998 and col_bigint_id_4=999998 and col_bigint_id_5=999998 + - workload: cattribG9_pg_seqscan_table25column_10pk_bigint_noRowsFetched + run: + - name: seqscan_table25column_10pk_bigint_noRowsFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_10pk_1 where col_bigint_id_1=1000001 and col_bigint_id_2=1000001 and col_bigint_id_3=1000001 and col_bigint_id_4=1000001 and col_bigint_id_5=1000001 and col_bigint_id_6=1000001 and col_bigint_id_7=1000001 and col_bigint_id_8=1000001 and col_bigint_id_9=1000001 and col_bigint_id_10=1000001 + - workload: cattribG9_pg_seqscan_table25column_10pk_bigint_1RowFetched + run: + - name: pg_seqscan_table25column_10pk_bigint_1RowFetched + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_bigint_10pk_1 where col_bigint_id_1=999998 and col_bigint_id_2=999998 and col_bigint_id_3=999998 and col_bigint_id_4=999998 and col_bigint_id_5=999998 and col_bigint_id_6=999998 and col_bigint_id_7=999998 and col_bigint_id_8=999998 and col_bigint_id_9=999998 and col_bigint_id_10=999998 + diff --git a/config/yugabyte/copy_command.yaml b/config/yugabyte/copy_command.yaml new file mode 100644 index 000000000..54a8bd0c1 --- /dev/null +++ b/config/yugabyte/copy_command.yaml @@ -0,0 +1,27 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.CopyCommand + properties: + tableName: orders + columns: 10 + rows: 100 + indexes: 1 + filePath: orders.csv + rowsPerTransaction: 1000 + diff --git a/config/yugabyte/demo/Colocated_with_pk.yaml b/config/yugabyte/demo/Colocated_with_pk.yaml new file mode 100644 index 000000000..bf508d2a9 --- /dev/null +++ b/config/yugabyte/demo/Colocated_with_pk.yaml @@ -0,0 +1,31 @@ +type: YUGABYTE +createdb: CREATE DATABASE yb1 WITH colocated = true; +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 3 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.ColocatedWithPK + properties: + create: + - DROP PROCEDURE IF exists insert_demo + - CREATE PROCEDURE insert_demo(_numRows int) + LANGUAGE plpgsql + AS $$ + DECLARE + BEGIN + insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1,_numRows) n; + END; + $$; + - drop table if exists demo; + - create table demo (id bigint primary key, col1 int, col2 int, col3 int, col4 int, col5 varchar(20), col6 date, col7 int, col8 bigint, col9 varchar(10), col10 int, col11 bigint, col12 varchar(10), col13 boolean, col14 int, col15 int) with (colocated = true); diff --git a/config/yugabyte/demo/Write_Impact_with_extra_index_1.yaml b/config/yugabyte/demo/Write_Impact_with_extra_index_1.yaml new file mode 100644 index 000000000..b39c25426 --- /dev/null +++ b/config/yugabyte/demo/Write_Impact_with_extra_index_1.yaml @@ -0,0 +1,32 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkWriteImpactWithExtraIndex1 + properties: + setAutoCommit: true + create: + - DROP PROCEDURE if exists insert_demo; + - CREATE PROCEDURE insert_demo(_numRows int) + LANGUAGE plpgsql + AS $$ + DECLARE + BEGIN + insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1,_numRows) n; + END; + $$; + - drop table if exists demo; + - create table demo (id bigint primary key, col1 int, col2 int, col3 int, col4 int, col5 varchar(20), col6 date, col7 int, col8 bigint, col9 varchar(10), col10 int, col11 bigint, col12 varchar(10), col13 boolean, col14 int, col15 int); + - create index demo_idx1 on demo(col1); diff --git a/config/yugabyte/demo/Write_impact_with_extra_index_0.yaml b/config/yugabyte/demo/Write_impact_with_extra_index_0.yaml new file mode 100644 index 000000000..eb230328d --- /dev/null +++ b/config/yugabyte/demo/Write_impact_with_extra_index_0.yaml @@ -0,0 +1,31 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkWriteImpactWithExtraIndex0 + properties: + setAutoCommit: true + create: + - DROP PROCEDURE if exists insert_demo; + - CREATE PROCEDURE insert_demo(_numRows int) + LANGUAGE plpgsql + AS $$ + DECLARE + BEGIN + insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1,_numRows) n; + END; + $$; + - drop table if exists demo; + - create table demo (id bigint primary key, col1 int, col2 int, col3 int, col4 int, col5 varchar(20), col6 date, col7 int, col8 bigint, col9 varchar(10), col10 int, col11 bigint, col12 varchar(10), col13 boolean, col14 int, col15 int); diff --git a/config/yugabyte/demo/Write_impact_with_extra_index_10.yaml b/config/yugabyte/demo/Write_impact_with_extra_index_10.yaml new file mode 100644 index 000000000..2903d5ba9 --- /dev/null +++ b/config/yugabyte/demo/Write_impact_with_extra_index_10.yaml @@ -0,0 +1,41 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkWriteImpactWithExtraIndex10 + properties: + setAutoCommit: true + create: + - DROP PROCEDURE if exists insert_demo; + - CREATE PROCEDURE insert_demo(_numRows int) + LANGUAGE plpgsql + AS $$ + DECLARE + BEGIN + insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1,_numRows) n; + END; + $$; + - drop table if exists demo; + - create table demo (id bigint primary key, col1 int, col2 int, col3 int, col4 int, col5 varchar(20), col6 date, col7 int, col8 bigint, col9 varchar(10), col10 int, col11 bigint, col12 varchar(10), col13 boolean, col14 int, col15 int); + - create index demo_idx1 on demo(col1); + - create index demo_idx2 on demo(col5); + - create index demo_idx3 on demo(col6); + - create index demo_idx4 on demo(col8); + - create index demo_idx5 on demo(col13); + - create index demo_idx6 on demo(col9); + - create index demo_idx7 on demo(col10); + - create index demo_idx8 on demo(col11); + - create index demo_idx9 on demo(col12); + - create index demo_idx10 on demo(col2); diff --git a/config/yugabyte/demo/Write_impact_with_extra_index_5.yaml b/config/yugabyte/demo/Write_impact_with_extra_index_5.yaml new file mode 100644 index 000000000..e7bd32452 --- /dev/null +++ b/config/yugabyte/demo/Write_impact_with_extra_index_5.yaml @@ -0,0 +1,36 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkWriteImpactWithExtraIndex5 + properties: + setAutoCommit: true + create: + - DROP PROCEDURE if exists insert_demo; + - CREATE PROCEDURE insert_demo(_numRows int) + LANGUAGE plpgsql + AS $$ + DECLARE + BEGIN + insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1,_numRows) n; + END; + $$; + - drop table if exists demo; + - create table demo (id bigint primary key, col1 int, col2 int, col3 int, col4 int, col5 varchar(20), col6 date, col7 int, col8 bigint, col9 varchar(10), col10 int, col11 bigint, col12 varchar(10), col13 boolean, col14 int, col15 int); + - create index demo_idx1 on demo(col1); + - create index demo_idx2 on demo(col5); + - create index demo_idx3 on demo(col6); + - create index demo_idx4 on demo(col8); + - create index demo_idx5 on demo(col13); diff --git a/config/yugabyte/demo/featurebench_after_load.yaml b/config/yugabyte/demo/featurebench_after_load.yaml new file mode 100644 index 000000000..6db740795 --- /dev/null +++ b/config/yugabyte/demo/featurebench_after_load.yaml @@ -0,0 +1,53 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +terminals: 1 +loaderthreads: 1 +works: + work: + time: 4 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit : true + create: + - DROP TABLE IF EXISTS categories cascade; + - CREATE TABLE categories(categoryId int NOT NULL, categoryName varchar(100) NOT NULL,PRIMARY KEY (categoryId)); + - DROP TABLE IF EXISTS products; + - CREATE TABLE products(productId int NOT NULL,productName varchar(100) NOT NULL, PRIMARY KEY (productId)); + loadRules: + - table: categories + rows: 50 + columns: + - name: categoryId + util: PrimaryIntGen + params: + - 1 + - 50 + - name: categoryName + util: RandomAString + params: + - 3 + - 5 + - table: products + rows: 50 + columns: + - name: productId + util: PrimaryIntGen + params: + - 1 + - 50 + - name: productName + util: RandomAString + params: + - 3 + - 5 + afterLoad : + - ALTER TABLE products add column categoryId int constraint fk_category_categoryId REFERENCES categories(categoryId); \ No newline at end of file diff --git a/config/yugabyte/demo/featurebench_colocated.yaml b/config/yugabyte/demo/featurebench_colocated.yaml new file mode 100644 index 000000000..bfb6d7415 --- /dev/null +++ b/config/yugabyte/demo/featurebench_colocated.yaml @@ -0,0 +1,72 @@ +type: YUGABYTE +createdb: DROP database if exists yb1;CREATE database yb1 WITH colocated = true; +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 3 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS accounts; + - CREATE TABLE accounts (id int NOT NULL, name varchar(64) NOT NULL, CONSTRAINT pk_accounts PRIMARY KEY (id)); + loadRules: + - table: accounts + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 10 + - name: name + util: RandomStringNumeric + params: + - 10 + executeRules: + - workload: Scan + run: + - name: Account_query1 + weight: 50 + queries: + - query: SELECT * FROM accounts WHERE id=? + bindings: + - util: RandomNumber + params: + - 8 + - 10 + - util: RandomNumber + params: + - 1 + - 4 + - query: SELECT * FROM accounts WHERE id<=? + bindings: + - util: RandomNumber + params: + - 5 + - 10 + - name: Account_query2 + weight: 50 + queries: + - query: SELECT * FROM accounts WHERE id>? + bindings: + - util: RandomNumber + params: + - 9 + - 10 + - query: SELECT * FROM accounts WHERE id<=? + bindings: + - util: RandomNumber + params: + - 7 + - 9 diff --git a/config/yugabyte/demo/featurebench_comma_separated_config.yaml b/config/yugabyte/demo/featurebench_comma_separated_config.yaml new file mode 100644 index 000000000..19bea7dd8 --- /dev/null +++ b/config/yugabyte/demo/featurebench_comma_separated_config.yaml @@ -0,0 +1,37 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP Table if exists demo1_1; + - create table demo1_1(id int,name text, PRIMARY key (id)) + - DROP Table if exists demo2_1; + - create table demo2_1(id int,name text, PRIMARY key (id)) + loadRules: + - table: demo1_1 , demo2_1 + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 10 + - name: name + util: RandomStringNumeric + params: + - 4 diff --git a/config/yugabyte/demo/featurebench_count_execute.yaml b/config/yugabyte/demo/featurebench_count_execute.yaml new file mode 100644 index 000000000..126c3b168 --- /dev/null +++ b/config/yugabyte/demo/featurebench_count_execute.yaml @@ -0,0 +1,83 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 3 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS demo100col; + - CREATE TABLE demo100col (id INT, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo100col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: col + count: 100 + util: RandomStringNumeric + params: + - 128 + + executeRules: + - workload: RangeScan + run: + - name: ReadQuery1 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < ? and id > ? + bindings: + - util: RandomNumber + count: 2 + params: + - 10 + - 30 + + - name: WriteQuery1 + weight: 50 + queries: + - query: UPDATE demo100col set col3 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + - run: + - name: ReadQuery2 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 10 + + - name: WriteQuery2 + weight: 50 + queries: + - query: UPDATE demo100col set col4 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 diff --git a/config/yugabyte/demo/featurebench_count_query.yaml b/config/yugabyte/demo/featurebench_count_query.yaml new file mode 100644 index 000000000..af25a6d57 --- /dev/null +++ b/config/yugabyte/demo/featurebench_count_query.yaml @@ -0,0 +1,78 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS demo2col; + - CREATE TABLE demo2col (id INT, col1 TEXT, col2 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo2col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: col + count: 2 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: RangeScan + run: + - name: ReadQuery1 + weight: 50 + queries: + - query: SELECT * FROM demo2col WHERE id < 10 + count: 3 + - name: WriteQuery1 + weight: 50 + queries: + - query: UPDATE demo2col set col2 = ? where id = ? + count: 2 + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + + - run: + - name: ReadQuery2 + weight: 50 + queries: + - query: SELECT * FROM demo2col WHERE id < 10 + - name: WriteQuery2 + weight: 50 + queries: + - query: UPDATE demo2col set col2 = ? where id = ? + count: 2 + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 diff --git a/config/yugabyte/demo/featurebench_count_sample.yaml b/config/yugabyte/demo/featurebench_count_sample.yaml new file mode 100644 index 000000000..35e0844ab --- /dev/null +++ b/config/yugabyte/demo/featurebench_count_sample.yaml @@ -0,0 +1,143 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: Password321@ +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 3 + active_terminals: 1 + rate: unlimited + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1); + - create index index_test_3_idx2 on index_test_3(col_int_2); + - create index index_test_3_idx3 on index_test_3(col_int_3); + - create index index_test_3_idx4 on index_test_3(col_int_4); + - create index index_test_3_idx5 on index_test_3(col_int_5); + - create index index_test_4_idx1 on index_test_4(col_int_1); + - create index index_test_4_idx2 on index_test_4(col_int_2); + - create index index_test_4_idx3 on index_test_4(col_int_3); + - create index index_test_4_idx4 on index_test_4(col_int_4); + - create index index_test_4_idx5 on index_test_4(col_int_5); + - create index index_test_4_idx6 on index_test_4(col_int_6); + - create index index_test_4_idx7 on index_test_4(col_int_7); + - create index index_test_4_idx8 on index_test_4(col_int_8); + - create index index_test_4_idx9 on index_test_4(col_int_9); + - create index index_test_4_idx10 on index_test_4(col_int_10); + loadRules: + - table: index_test_ + count: 4 + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 10000001, 90000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 10000001, 90000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 10000001, 90000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 10000001, 90000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean diff --git a/config/yugabyte/demo/featurebench_default_afterLoad.yaml b/config/yugabyte/demo/featurebench_default_afterLoad.yaml new file mode 100644 index 000000000..54c28631e --- /dev/null +++ b/config/yugabyte/demo/featurebench_default_afterLoad.yaml @@ -0,0 +1,20 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.TestAfterLoad + properties: {} \ No newline at end of file diff --git a/config/yugabyte/demo/featurebench_explain.yaml b/config/yugabyte/demo/featurebench_explain.yaml new file mode 100644 index 000000000..e0ff0cec3 --- /dev/null +++ b/config/yugabyte/demo/featurebench_explain.yaml @@ -0,0 +1,83 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS demo100col; + - CREATE TABLE demo100col (id INT, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo100col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: col + count: 100 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: RangeScan + run: + - name: ReadQuery1 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 10 + - query: SELECT * FROM demo100col WHERE id > ? + bindings: + - util: RandomNumber + params: + - 50 + - 100 + + - name: WriteQuery1 + weight: 50 + queries: + - query: UPDATE demo100col set col3 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + + - run: + - name: ReadQuery2 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 10 + + - name: WriteQuery2 + weight: 50 + queries: + - query: UPDATE demo100col set col3 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 diff --git a/config/yugabyte/demo/featurebench_explain_dist.yaml b/config/yugabyte/demo/featurebench_explain_dist.yaml new file mode 100644 index 000000000..b7e1ef45e --- /dev/null +++ b/config/yugabyte/demo/featurebench_explain_dist.yaml @@ -0,0 +1,35 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +works: + work: + time_secs: 5 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table if exists t1; + - drop table if exists t2; + - create table t1 (c1 int primary key, c2 int, c3 int, c4 text); + - insert into t1 select i, i % 10, i % 12, lpad(i::text, 80, '#') from generate_series(1, 10000) i; + - create index on t1 (c3 asc, c2 asc); + - create table t2 (c1 int primary key, c2 int, c3 int, c4 text); + - create index on t2 (c2); + executeRules: + - workload: explainDistTesting + run: + - name: DistTesting + weight: 100 + queries: + - query: select * from t1 where c1 <= 123 and c2 = c3; \ No newline at end of file diff --git a/config/yugabyte/demo/featurebench_microbenchmark1_sonal.yaml b/config/yugabyte/demo/featurebench_microbenchmark1_sonal.yaml new file mode 100644 index 000000000..2bb951340 --- /dev/null +++ b/config/yugabyte/demo/featurebench_microbenchmark1_sonal.yaml @@ -0,0 +1,21 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 1 + active_terminals: 1 + rate: 1000 + warmup: 0 +#transactiontypes: +# transactiontype: +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkImplSonal + properties: + execute: true diff --git a/config/yugabyte/demo/featurebench_microbenchmark_1.yaml b/config/yugabyte/demo/featurebench_microbenchmark_1.yaml new file mode 100644 index 000000000..4aef90e39 --- /dev/null +++ b/config/yugabyte/demo/featurebench_microbenchmark_1.yaml @@ -0,0 +1,36 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS distributors; + - DROP SEQUENCE IF EXISTS serial_no; + - CREATE SEQUENCE serial_no; + - CREATE TABLE distributors(did DECIMAL(3) DEFAULT NEXTVAL('serial_no'), dname varchar(40) DEFAULT 'Lusofilms'); + loadRules: + - table: distributors + rows: 100 + columns: + - name: dname + util: RandomAString + params: + - 1 + - 20 + cleanup: + - DROP TABLE distributors; diff --git a/config/yugabyte/demo/featurebench_sampleimplementation_4.yaml b/config/yugabyte/demo/featurebench_sampleimplementation_4.yaml new file mode 100644 index 000000000..bef253f0b --- /dev/null +++ b/config/yugabyte/demo/featurebench_sampleimplementation_4.yaml @@ -0,0 +1,51 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS accounts; + - CREATE TABLE accounts (id int NOT NULL, name varchar(64) NOT NULL, CONSTRAINT pk_accounts PRIMARY KEY (id)); + - CREATE INDEX idx_accounts_name ON accounts (name); + loadRules: + - table: accounts + rows: 100 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 100 + - name: name + util: RandomStringNumeric + params: + - 10 + executeRules: + - workload: RangeScan + run: + - name: AccountQuery + weight: 100 + queries: + - query: SELECT * FROM accounts WHERE id > ? + bindings: + - util: RowRandomBoundedInt + params: + - 5 + - 10 + cleanup: + - DROP TABLE accounts; diff --git a/config/yugabyte/demo/featurebench_santanu_employees1M.yaml b/config/yugabyte/demo/featurebench_santanu_employees1M.yaml new file mode 100644 index 000000000..f1e1d1f39 --- /dev/null +++ b/config/yugabyte/demo/featurebench_santanu_employees1M.yaml @@ -0,0 +1,55 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS employees1M; + - CREATE TABLE employees1M(id BIGINT PRIMARY KEY, name TEXT,email VARCHAR(10) NOT NULL,salary INT,hire_date DATE); + loadRules: + - table: employees1M + rows: 5 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: name + util: RandomAString + params: + - 4 + - 6 + - name: email + util: RandomAString + params: + - 7 + - 10 + - name: salary + util: RandomInt + params: + - 1000000 + - 9999999 + - name: hire_date + util: RandomDateBtwYears + params: + - 2009 + - 2023 + + cleanup: + - DROP TABLE employees1M; diff --git a/config/yugabyte/demo/featurebench_santanu_t1_10_10k.yaml b/config/yugabyte/demo/featurebench_santanu_t1_10_10k.yaml new file mode 100644 index 000000000..cb15b8ee5 --- /dev/null +++ b/config/yugabyte/demo/featurebench_santanu_t1_10_10k.yaml @@ -0,0 +1,95 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS t1_10_10k; + - CREATE TABLE t1_10_10k(c1 BIGINT PRIMARY KEY, + c2 INT, + c3 BIGINT, + c4 FLOAT(2), + c5 DATE, + c6 Boolean, + c7 VARCHAR(10) NOT NULL, + c8 VARCHAR(100) NOT NULL, + c9 text); + - CREATE INDEX t1_idx_COM ON t1_10_10k(c2, c3); + - CREATE INDEX t1_idx_ASC ON t1_10_10k(c7 ASC); + - CREATE INDEX t1_idx_INC ON t1_10_10k(c2) INCLUDE (c4); + - CREATE INDEX t1_idx_PAR ON t1_10_10k(c2,c5,c6) WHERE c9='Type1'; + loadRules: + - table: t1_10_10k + rows: 5 + columns: + - name: c1 + util: PrimaryIntGen + params: + - 1 + - 10000 + - name: c2 + util: RandomInt + params: + - 1 + - 20000 + - name: c3 + util: RandomLong + params: + - 1000000 + - 2000000 + - name: c4 + util: RandomFixedPoint + params: + - 2 + - 1 + - 10000 + - name: c5 + util: CurrentTime + - name: c6 + util: RandomBoolean + - name: c7 + util: RandomAString + params: + - 1 + - 5 + - name: c8 + util: RandomAString + params: + - 1 + - 10 + - name: c9 + util: OneStringFromArray + params: + - Type1 + - Type2 + - Type3 + executeRules: + - workload: t1_10_10k + run: + - name: Scan_Query + weight: 100 + queries: + - query: SELECT * FROM t1_10_10k WHERE c2 = ?; + bindings: + - util: RandomInt + params: + - 1 + - 2000 + + cleanup: + - DROP TABLE t1_10_10k; diff --git a/config/yugabyte/demo/featurebench_santanu_test.yaml b/config/yugabyte/demo/featurebench_santanu_test.yaml new file mode 100644 index 000000000..d55ece2cb --- /dev/null +++ b/config/yugabyte/demo/featurebench_santanu_test.yaml @@ -0,0 +1,57 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + serial: true + active_terminals: 1 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + tableName: accounts + columns: 10 + rows: 100 + indexes: 2 + filePath: accounts.csv + rowsPerTransaction: 2000 + create: + - DROP TABLE IF EXISTS t1; + - CREATE TABLE t1 (k1 int, k2 text, v1 int, v2 text, PRIMARY KEY(k1 ASC, k2 ASC)); + - CREATE INDEX ON t1(v1 ASC, k2 ASC); + cleanup: + - DROP TABLE t1; + loadRules: + - table: t1 + rows: 1000 + columns: + - name: k1 + util: RandomInt + params: + - 100 + - 500 + - name: k2 + util: RandomAString + params: + - 2 + - 5 + - name: v1 + util: RandomInt + params: + - 5 + - 6 + - name: v2 + util: RandomAString + params: + - 2 + - 5 diff --git a/config/yugabyte/demo/featurebench_scan_sonal.yaml b/config/yugabyte/demo/featurebench_scan_sonal.yaml new file mode 100644 index 000000000..5b1b7350f --- /dev/null +++ b/config/yugabyte/demo/featurebench_scan_sonal.yaml @@ -0,0 +1,20 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkScansSonal + properties: {} diff --git a/config/yugabyte/demo/featurebench_test_utils.yaml b/config/yugabyte/demo/featurebench_test_utils.yaml new file mode 100644 index 000000000..8b57e8f85 --- /dev/null +++ b/config/yugabyte/demo/featurebench_test_utils.yaml @@ -0,0 +1,42 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time: 3 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS accounts; + - CREATE TABLE accounts (id int NOT NULL, name varchar(64) NOT NULL, CONSTRAINT pk_accounts PRIMARY KEY (id),namesArray TEXT[],date DATE); + loadRules: + - table: accounts + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 100 + - name: name + util: RandomStringNumeric + params: + - 10 + - name: namesArray + util: RandomStringTextArrayGen + params: + - 5 + - 2 + - 8 + - name: date + util: RandDate \ No newline at end of file diff --git a/config/yugabyte/demo/sample_featurebench_insert.yaml b/config/yugabyte/demo/sample_featurebench_insert.yaml new file mode 100644 index 000000000..cb26126f0 --- /dev/null +++ b/config/yugabyte/demo/sample_featurebench_insert.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 2 +works: + work: + time_secs: 33 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS inserttest; + - CREATE TABLE inserttest(id int,name text, primary key (id)) + loadRules: + - table: inserttest + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 10 + - name: name + util: RandomAString + params: + - 5 + - 5 + executeRules: + - workload: scanG4_yb_pkey_INclause_rangescan_increasing_rows_1row + run: + - name: pkey_INclause_rangescan_increasing_rows_1row_test + weight: 100 + queries: + - query: select * from inserttest where id IN (?) + bindings: + - count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + + +# executeRules: +# - workload: InsertScan +# run: +# - name: Inserts +# weight: 100 +# queries: +# - query: INSERT INTO inserttest(id,name) values(? , ?); +# bindings: +# - util: PrimaryIntGen +# params: +# - 20 +# - 100000 +# - util: RandomAString +# params: +# - 4 +# - 4 + diff --git a/config/yugabyte/demo/test_cli_params.yaml b/config/yugabyte/demo/test_cli_params.yaml new file mode 100644 index 000000000..a7ff419ac --- /dev/null +++ b/config/yugabyte/demo/test_cli_params.yaml @@ -0,0 +1,99 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username : {{ name }} +password: +batchsize: 128 +isolation : {{isolation_level}} +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: {{time}} + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit : true + create: + - DROP TABLE IF EXISTS demo100col; + - CREATE TABLE demo100col (id INT, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo100col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: col + count: 100 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: RangeScan1 + run: + - name: ReadQuery1 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 10 + + - name: WriteQuery1 + weight: 50 + queries: + - query: UPDATE demo100col set col2 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + + + - workload: RangeScan2 + run: + - name: ReadQuery2 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 10 + + - name: WriteQuery2 + weight: 50 + queries: + - query: UPDATE demo100col set col3 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + - workload: RangeScan3 + run: + - name: ReadQuery3 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 50 + + - name: WriteQuery3 + weight: 50 + queries: + - query: UPDATE demo100col set col4 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 diff --git a/config/yugabyte/demo/test_pg_stats.yaml b/config/yugabyte/demo/test_pg_stats.yaml new file mode 100644 index 000000000..667f90a80 --- /dev/null +++ b/config/yugabyte/demo/test_pg_stats.yaml @@ -0,0 +1,83 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 3 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS demo2col; + - CREATE TABLE demo2col (id INT, col1 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo2col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 10 + - name: col1 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: RangeScan + run: + - name: ReadQuery1 + weight: 50 + queries: + - query: SELECT * FROM demo2col WHERE id < 10 + - query: SELECT * FROM demo2col WHERE id > ? + bindings: + - util: RandomNumber + params: + - 50 + - 100 + - name: WriteQuery1 + weight: 50 + queries: + - query: UPDATE demo2col set col1 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + + - workload: UpdateScan + run: + - name: ReadQuery2 + weight: 50 + queries: + - query: SELECT * FROM demo2col WHERE id < 10 + + - name: WriteQuery2 + weight: 50 + queries: + - query: UPDATE demo2col set col1 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 diff --git a/config/yugabyte/demo/test_utils.yaml b/config/yugabyte/demo/test_utils.yaml new file mode 100644 index 000000000..5027ea5c3 --- /dev/null +++ b/config/yugabyte/demo/test_utils.yaml @@ -0,0 +1,121 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 10 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit : true + create: + - DROP TABLE IF EXISTS STUDENTS; + - DROP TABLE IF EXISTS ALUMNI; + - DROP TABLE IF EXISTS USERS; + - DROP TABLE IF EXISTS CUSTOMERS; + - DROP TABLE IF EXISTS EMPLOYEE; + - CREATE TABLE STUDENTS(id text PRIMARY KEY, name text,subject text,merits int, time1 DATE,time2 text,time3 text,cgpa numeric(6,2),standard int) + - CREATE TABLE ALUMNI(regno text,is_2022_passout boolean,passoutYear text,no_of_subjects int, savings int) + - CREATE TABLE users (id uuid PRIMARY KEY, name varchar(255), customer_code text, credits int,total_expenditure bigint,date_issue DATE); + - CREATE TABLE customers(id serial primary key,cid text, customer_points numeric(5,2)); + - CREATE TABLE employee(id serial primary key, basic_sal bigint, variable_sal int,hra bigint,ppa int) + loadRules: + - table: students + rows: 10 + columns: + - name: id + util: PrimaryStringGen + params: [1,5] + - name: name + util: GenerateRandomString + params: [5,4] + - name : subject + util: OneStringFromArray + params : ["maths","computer","english","physics"] + - name : merits + util : OneNumberFromArray + params: [1,2,3,5,7] + - name: time1 + util: CurrentTime + - name: time2 + util: CurrentTimeString + - name: time3 + util: CurrentTimeString14 + - name: cgpa + util: RandomNormalFloat + params: [5,2] + - name: standard + util: ConstantValue + params: [5.5] + - table: alumni + rows: 10 + columns: + - name: regno + util: PrimaryStringGen + params: [1,5] + - name: is_2022_passout + util: RandomBoolean + - name : passoutYear + util: RandomDate + params : [2013,2022] + - name : no_of_subjects + util: RandomInt + params : [5,8] + - name: savings + util: RandomNumberDefault + - table: users + rows: 10 + columns: + - name: id + util: RandomUUID + - name: name + util: RandomStringAlphabets + params: [7] + - name: customer_code + util: RandomStringNumeric + params: [5] + - name : credits + util : RandomNumber + params : [1,10] + - name: total_expenditure + util: RandomLong + params : [223372036854775808, 9223372036854775807] + - name: date_issue + util: RandomDateBtwYears + params: [2013,2022] + - table: customers + rows: 10 + columns: + - name: cid + util: RandomNstring + params: [4,6] + - name: customer_points + util : RandomNoWithDecimalPoints + params: [4,5,2] + - table: employee + rows: 10 + columns: + - name: basic_sal + util: RowRandomBoundedLong + params: [100000000,2000000000] + - name: variable_sal + util: RowRandomBoundedInt + params: [10000,20000] + - name: hra + util: RandomNormalLong + params: [1000000,20000] + - name: ppa + util: RandomNormalInt + params: [10000,2000] + + + diff --git a/config/yugabyte/featurebench_copycommand.yaml b/config/yugabyte/featurebench_copycommand.yaml new file mode 100644 index 000000000..4eb7328d7 --- /dev/null +++ b/config/yugabyte/featurebench_copycommand.yaml @@ -0,0 +1,27 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 6 +terminals: 6 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.CopyCommandBenchmark + properties: + rows: 100 + columns: 10 + indexes: 2 + rowspertransaction: 1000 +# tableName: accounts +# filePath: accounts.csv + +works: + work: + time: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench \ No newline at end of file diff --git a/config/yugabyte/featurebench_ddl.yaml b/config/yugabyte/featurebench_ddl.yaml new file mode 100644 index 000000000..aedc1b427 --- /dev/null +++ b/config/yugabyte/featurebench_ddl.yaml @@ -0,0 +1,24 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.CreateAndDeleteTables + properties: + testDrop: true +# testCreate: true + numTables: 10 + diff --git a/config/yugabyte/featurebench_microbenchmark_1.yaml b/config/yugabyte/featurebench_microbenchmark_1.yaml new file mode 100644 index 000000000..a5053d99d --- /dev/null +++ b/config/yugabyte/featurebench_microbenchmark_1.yaml @@ -0,0 +1,36 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS distributors; + - DROP SEQUENCE IF EXISTS serial_no; + - CREATE SEQUENCE serial_no; + - CREATE TABLE distributors(did DECIMAL(3) DEFAULT NEXTVAL('serial_no'), dname varchar(40) DEFAULT 'Lusofilms'); + loadRules: + - table: distributors + rows: 10 + columns: + - name: dname + util: RandomAString + params: + - 1 + - 20 + cleanup: + - DROP TABLE distributors; diff --git a/config/yugabyte/featurebench_pointquery.yaml b/config/yugabyte/featurebench_pointquery.yaml new file mode 100644 index 000000000..6c58cdf26 --- /dev/null +++ b/config/yugabyte/featurebench_pointquery.yaml @@ -0,0 +1,21 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.PointQuery + properties: + diff --git a/config/yugabyte/featurebench_sampleimplementation_4.yaml b/config/yugabyte/featurebench_sampleimplementation_4.yaml new file mode 100644 index 000000000..c2e03f12f --- /dev/null +++ b/config/yugabyte/featurebench_sampleimplementation_4.yaml @@ -0,0 +1,51 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 10 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS accounts; + - CREATE TABLE accounts (id int NOT NULL, name varchar(64) NOT NULL, CONSTRAINT pk_accounts PRIMARY KEY (id)); + - CREATE INDEX idx_accounts_name ON accounts (name); + loadRules: + - table: accounts + rows: 100 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 100 + - name: name + util: RandomStringNumeric + params: + - 10 + executeRules: + - workload: RangeScan + run: + - name: AccountQuery + weight: 100 + queries: + - query: SELECT * FROM accounts WHERE id > ? + bindings : + - util: RowRandomBoundedInt + params: + - 5 + - 10 + cleanup: + - DROP TABLE accounts; diff --git a/config/yugabyte/featurebench_santanu_test.yaml b/config/yugabyte/featurebench_santanu_test.yaml new file mode 100644 index 000000000..d4db81c44 --- /dev/null +++ b/config/yugabyte/featurebench_santanu_test.yaml @@ -0,0 +1,57 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +works: + work: + serial: true + active_terminals: 1 + rate: 1000 + weights: 100 +transactiontypes: + transactiontype: + name: FeatureBench +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + tableName: accounts + columns: 10 + rows: 100 + indexes: 2 + filePath: accounts.csv + rowsPerTransaction: 2000 + create: + - DROP TABLE IF EXISTS t1; + - CREATE TABLE t1 (k1 int,k2 text,v1 int,v2 text,PRIMARY KEY(k1 ASC, k2 ASC)); + - CREATE INDEX ON t1(v1 ASC, k2 ASC); + cleanup: + - DROP TABLE t1; + loadRules: + - table: t1 + rows: 1000 + columns: + - name: k1 + util: RandomInt + params: + - 100 + - 500 + - name: k2 + util: RandomAstring + params: + - 2 + - 5 + - name: v1 + util: RandomInt + params: + - 5 + - 6 + - name: v2 + util: RandomAString + params: + - 2 + - 5 diff --git a/config/yugabyte/featurebench_select.yaml b/config/yugabyte/featurebench_select.yaml new file mode 100644 index 000000000..9eff02fc3 --- /dev/null +++ b/config/yugabyte/featurebench_select.yaml @@ -0,0 +1,50 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + create: + - DROP TABLE IF EXISTS accounts; + - CREATE TABLE accounts (id int NOT NULL, name varchar(64) NOT NULL, CONSTRAINT pk_accounts PRIMARY KEY (id)); + - CREATE INDEX idx_accounts_name ON accounts (name); + cleanup: + - DROP TABLE accounts; + loadRules: + - table: accounts + rows: 1000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: name + util: RandomStringNumeric + params: + - 16 + executeRules: + - workload: AccountQuery + run: + - name: selectQuery + weight: 100 + queries: + - query: SELECT * FROM accounts WHERE id > ? + bindings: + - util: RandomNumber + params: + - 1 + - 100 + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml new file mode 100644 index 000000000..7c02e83ac --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml @@ -0,0 +1,130 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 1000*10 10000*1 +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS iNDG10_U_pkeyBigint1M_1; + - CREATE TABLE iNDG10_U_pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + + cleanup: + - DROP TABLE IF EXISTS iNDG10_U_pkeyBigint1M_1; + + loadRules: + - table: iNDG10_U_pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomUniqueCyclicIntGen + params: [ 1000001, 1000050, 10000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG10_1_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash_1M + customTags: customer=2 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? + bindings: + - util: RandomUniqueCyclicIntGen + params: [ 1000001, 1000050 ] + + - workload: INDG10_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG10_U_pkeyBigint1M_1 where col_bigint_card2_1=? + bindings: + - util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG10_4_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k_two_conditions + customTags: customer=1 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? and col_bigint_card2_1 between ? and ? + bindings: + - util: RandomInt + params: [ 1000001, 1000050 ] + - util: RandomInt + params: [ 1000001, 1001000 ] + referenceName: start_value + - util: ExpressionEval + params: + - "start_value + 50" + + - workload: INDG10_5_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_third_part_hash_100_two_conditions + customTags: customer=2 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? and col_bigint_card3_1=? + bindings: + - util: RandomInt + params: [ 1000001, 1000050 ] + - util: RandomInt + params: [ 1000001, 1010000 ] diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml new file mode 100644 index 000000000..c959d78e7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml @@ -0,0 +1,125 @@ +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 1000*10 10000*1 +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG11_U_pkeyVarchar10_1; + - CREATE TABLE INDG11_U_pkeyVarchar10_1(col_varchar_card1_1 varchar(15), col_varchar_card2_1 varchar(15), col_varchar_card3_1 varchar(15), col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar_card1_1, col_varchar_card2_1, col_varchar_card3_1, col_bigint_id_1)); + + cleanup: + - DROP TABLE IF EXISTS INDG11_U_pkeyVarchar10_1; + + loadRules: + - table: INDG11_U_pkeyVarchar10_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_card1_ + count: 1 + util: RandomUniqueCyclicStringGen + params: [ 1, 50, 10000 ] + - name: col_varchar_card2_ + count: 1 + util: CyclicSeqStringGen + params: [ 1, 1000 ] + - name: col_varchar_card3_ + count: 1 + util: CyclicSeqStringGen + params: [ 1, 10000 ] + - name: col_bigint_id_ + count: 3 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG11_1_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash_1M + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card2_1=? + bindings: + - util: CyclicSeqStringGen + params: [ 1, 1000, "id-" ] + + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k_two_conditions + customTags: customer=1 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? and col_varchar_card2_1 between ? and ? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + - util: CyclicSeqStringGen + params: [ 1, 980, "id-" ] + - util: CyclicSeqStringGen + params: [ 20, 1000, "id-" ] + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_third_part_hash_100_two_conditions + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? and col_varchar_card3_1=? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + - util: CyclicSeqStringGen + params: [ 1, 10000, "id-" ] diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml new file mode 100644 index 000000000..10081cc76 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml @@ -0,0 +1,114 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS iNDG12_U_pkeyBigint1M_1; + - CREATE TABLE iNDG12_U_pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON iNDG12_U_pkeyBigint1M_1(col_bigint_card1_1); + - CREATE INDEX ON iNDG12_U_pkeyBigint1M_1(col_bigint_card2_1 ASC); + - CREATE INDEX ON iNDG12_U_pkeyBigint1M_1(col_bigint_card3_1 DESC); + + cleanup: + - DROP TABLE IF EXISTS iNDG12_U_pkeyBigint1M_1; + + loadRules: + - table: iNDG12_U_pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG12_1_index_scan_hash_skey_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=hashskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG12_U_pkeyBigint1M_1 where col_bigint_card1_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG12_2_index_scan_range_skey_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG12_U_pkeyBigint1M_1 where col_bigint_card2_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG12_3_index_scan_range_skey_desc_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG12_U_pkeyBigint1M_1 where col_bigint_card3_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG13_U_compare_index_scan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG13_U_compare_index_scan.yaml new file mode 100644 index 000000000..fbe7f7018 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG13_U_compare_index_scan.yaml @@ -0,0 +1,74 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG13_U_rangetbl_1; + - CREATE TABLE INDG13_U_rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG13_U_rangetbl_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS INDG13_U_rangetbl_1; + + loadRules: + - table: INDG13_U_rangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: INDG13_3_indexscan_using_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select col_bigint_id_1 from INDG13_U_rangetbl_1 where col_bigint_id_2>0 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG1_U_pkey_point_selects_hash_table_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG1_U_pkey_point_selects_hash_table_indexscan.yaml new file mode 100644 index 000000000..0a975ddd3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG1_U_pkey_point_selects_hash_table_indexscan.yaml @@ -0,0 +1,84 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG1_U_CompositeHashtbl_1; + - CREATE TABLE INDG1_U_CompositeHashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + + cleanup: + - DROP TABLE IF EXISTS INDG1_U_CompositeHashtbl_1; + + loadRules: + + - table: INDG1_U_CompositeHashtbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG1_1_hashtbl_point_lookup_index_scan_using_comp_pkey_first_part_hash + customTags: customer=10 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG1_U_CompositeHashtbl_1 where col_bigint_id_1=500009 + + - workload: INDG1_2_hashtbl_point_lookup_index_scan_using_comp_pkey_sec_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG1_U_CompositeHashtbl_1 where col_bigint_id_2=500009 + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG2_U_pkey_point_selects_range_table_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG2_U_pkey_point_selects_range_table_indexscan.yaml new file mode 100644 index 000000000..5b66817de --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG2_U_pkey_point_selects_range_table_indexscan.yaml @@ -0,0 +1,84 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG2_U_CompositeRangetbl_1; + - CREATE TABLE INDG2_U_CompositeRangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + + cleanup: + - DROP TABLE IF EXISTS INDG2_U_CompositeRangetbl_1; + + + loadRules: + - table: INDG2_U_CompositeRangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + + - workload: INDG2_1_rangetbl_point_lookup_index_scan_using_comp_pkey_first_part_range + customTags: customer=7 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG2_U_CompositeRangetbl_1 where col_bigint_id_1=500009 + + - workload: INDG2_2_rangetbl_point_lookup_index_scan_using_comp_pkey_sec_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG2_U_CompositeRangetbl_1 where col_bigint_id_2=500009 + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG3_U_pkey_hash_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG3_U_pkey_hash_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..1ea457b02 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG3_U_pkey_hash_tbl_range_selects_indexscan.yaml @@ -0,0 +1,95 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG3_U_CompositeRangetbl_1; + - CREATE TABLE INDG3_U_CompositeRangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + + cleanup: + - DROP TABLE IF EXISTS INDG3_U_CompositeRangetbl_1; + + loadRules: + + - table: INDG3_U_CompositeRangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG3_1_hashtbl_range_lookup_index_scan_using_comp_pkey_first_part_hash + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG3_U_CompositeRangetbl_1 where col_bigint_id_1>500000 + + - workload: INDG3_2_hashtbl_range_lookup_index_scan_using_comp_pkey_sec_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG3_U_CompositeRangetbl_1 where col_bigint_id_2>500000 + + - workload: INDG3_3_hashtbl_range_lookup_index_scan_using_comp_pkey_using_two_conditions_hash_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG3_U_CompositeRangetbl_1 where col_bigint_id_1>250000 and col_bigint_id_2<750000 + + - workload: INDG3_4_hashtbl_range_lookup_index_scan_using_pkey_two_conditions_both_hash + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG3_U_CompositeRangetbl_1 where col_bigint_id_1>250000 and col_bigint_id_1<750000 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..a5e178a87 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml @@ -0,0 +1,95 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG4_U_CompositeRangetbl_1; + - CREATE TABLE INDG4_U_CompositeRangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + + cleanup: + - DROP TABLE IF EXISTS INDG4_U_CompositeRangetbl_1; + + loadRules: + + - table: INDG4_U_CompositeRangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG4_1_rangetbl_range_lookup_index_scan_using_comp_pkey_first_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_1>500000 + + - workload: INDG4_2_rangetbl_range_lookup_index_scan_using_comp_pkey_sec_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_2>500000 + + - workload: INDG4_3_rangetbl_range_lookup_index_scan_using_comp_pkey_using_two_conditions_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_1>250000 and col_bigint_id_2<750000 + + - workload: INDG4_4_rangetbl_range_lookup_index_scan_using_pkey_two_conditions_range + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_1>250000 and col_bigint_id_1<750000 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG5_U_sec_index_hash_tbl_point_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG5_U_sec_index_hash_tbl_point_selects_indexscan.yaml new file mode 100644 index 000000000..6630bb825 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG5_U_sec_index_hash_tbl_point_selects_indexscan.yaml @@ -0,0 +1,80 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG5_U_Hashtbl_comp_skey_1; + - CREATE TABLE INDG5_U_Hashtbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG5_U_Hashtbl_comp_skey_1(col_bigint_id_2, col_bigint_id_3); + - CREATE INDEX ON INDG5_U_Hashtbl_comp_skey_1(col_bigint_id_4, col_bigint_id_5); + + cleanup: + - DROP TABLE IF EXISTS INDG5_U_Hashtbl_comp_skey_1; + + loadRules: + + - table: INDG5_U_Hashtbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG5_1_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash + customTags: customer=9 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG5_U_Hashtbl_comp_skey_1 where col_bigint_id_2=500009 + + - workload: INDG5_2_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG5_U_Hashtbl_comp_skey_1 where col_bigint_id_3=500009 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml new file mode 100644 index 000000000..90ae7ea9a --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml @@ -0,0 +1,82 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG6_U_Rangetbl_1; + - CREATE TABLE INDG6_U_Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG6_U_Rangetbl_1(col_bigint_id_2, col_bigint_id_3); + + cleanup: + - DROP TABLE IF EXISTS INDG6_U_Rangetbl_1; + + loadRules: + + - table: INDG6_U_Rangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + + - workload: INDG6_1_iNDG6_U_Rangetbl_point_lookup_index_scan_using_comp_range_skey_first_part_range + customTags: customer=1 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_1 where col_bigint_id_2=500009 + + - workload: INDG6_2_iNDG6_U_Rangetbl_point_lookup_index_scan_using_comp_range_skey_sec_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_1 where col_bigint_id_3=500009 + + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG7_U_sec_index_hash_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG7_U_sec_index_hash_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..a4916f918 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG7_U_sec_index_hash_tbl_range_selects_indexscan.yaml @@ -0,0 +1,93 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG7_U_Hashtbl_comp_skey_1; + - CREATE TABLE INDG7_U_Hashtbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG7_U_Hashtbl_comp_skey_1(col_bigint_id_2, col_bigint_id_3); + - CREATE INDEX ON INDG7_U_Hashtbl_comp_skey_1(col_bigint_id_4, col_bigint_id_5); + + cleanup: + - DROP TABLE IF EXISTS INDG7_U_Hashtbl_comp_skey_1; + + loadRules: + + - table: INDG7_U_Hashtbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG7_1_hashtbl_range_lookup_index_scan_using_comp_skey_first_part_hash + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_2>500000 + + - workload: INDG7_2_hashtbl_range_lookup_index_scan_using_comp_skey_sec_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_3>500000 + + - workload: INDG7_6_hashtbl_range_lookup_index_scan_using_mixed_comp_skey_two_conditions_hash_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_4>250000 and col_bigint_id_5<750000 + + - workload: INDG7_7_hashtbl_range_lookup_index_scan_using_skey_two_conditions_on_hash + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_2>250000 and col_bigint_id_2<750000 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..9c223595c --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/postgres/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml @@ -0,0 +1,92 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG8_U_Rangetbl_comp_skey_1; + - CREATE TABLE INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_3, col_bigint_id_4); + + cleanup: + - DROP TABLE IF EXISTS INDG8_U_Rangetbl_comp_skey_1; + + loadRules: + + - table: INDG8_U_Rangetbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG8_1_rangetbl_range_lookup_index_scan_using_comp_skey_first_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_3>500000 + + - workload: INDG8_2_rangetbl_range_lookup_index_scan_using_comp_skey_sec_part_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_4>500000 + + - workload: INDG8_5_rangetbl_range_lookup_index_scan_using_comp_skey_two_conditions_range + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_3>250000 and col_bigint_id_4<750000 + + - workload: INDG8_7_rangetbl_range_lookup_index_scan_using_skey_two_conditions_range + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_3>250000 and col_bigint_id_3<750000 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml new file mode 100644 index 000000000..a02803963 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml @@ -0,0 +1,133 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 1000*10 10000*1 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG10_U_pkeyBigint1M_1; + - CREATE TABLE INDG10_U_pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1 ASC, col_bigint_card2_1 ASC, col_bigint_card3_1 ASC, col_bigint_id_1 ASC)); + + cleanup: + - DROP TABLE IF EXISTS INDG10_U_pkeyBigint1M_1; + + loadRules: + - table: INDG10_U_pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomUniqueCyclicIntGen + params: [ 1000001, 1000050, 10000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG10_1_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash_1M + customTags: customer=2,schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? + bindings: + - util: RandomUniqueCyclicIntGen + params: [ 1000001, 1000050 ] + + - workload: INDG10_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k + customTags: customer=2,schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card2_1=? + bindings: + - util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG10_4_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k_two_conditions + customTags: customer=2,schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? and col_bigint_card2_1 between ? and ? + bindings: + - util: RandomInt + params: [ 1000001, 1000050 ] + - util: RandomInt + params: [ 1000001, 1001000 ] + referenceName: start_value + - util: ExpressionEval + params: + - "start_value + 50" + + - workload: INDG10_5_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_third_part_hash_100_two_conditions + customTags: customer=2,schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? and col_bigint_card3_1=? + bindings: + - util: RandomInt + params: [ 1000001, 1000050 ] + - util: RandomInt + params: [ 1000001, 1010000 ] diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml new file mode 100644 index 000000000..09a53405c --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml @@ -0,0 +1,131 @@ +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 1000*10 10000*1 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG11_U_pkeyVarchar10_1; + - CREATE TABLE INDG11_U_pkeyVarchar10_1(col_varchar_card1_1 varchar(15), col_varchar_card2_1 varchar(15), col_varchar_card3_1 varchar(15), col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar_card1_1 ASC, col_varchar_card2_1 ASC, col_varchar_card3_1 ASC, col_bigint_id_1 ASC)); + + cleanup: + - DROP TABLE IF EXISTS INDG11_U_pkeyVarchar10_1; + + loadRules: + - table: INDG11_U_pkeyVarchar10_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_card1_ + count: 1 + util: RandomUniqueCyclicStringGen + params: [ 1, 50, 10000 ] + - name: col_varchar_card2_ + count: 1 + util: CyclicSeqStringGen + params: [ 1, 1000 ] + - name: col_varchar_card3_ + count: 1 + util: CyclicSeqStringGen + params: [ 1, 10000 ] + - name: col_bigint_id_ + count: 3 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG11_1_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash_1M + customTags: schematype=colocated,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k + customTags: schematype=colocated,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card2_1=? + bindings: + - util: CyclicSeqStringGen + params: [ 1, 1000, "id-" ] + + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k_two_conditions + customTags: customer=1,schematype=colocated,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? and col_varchar_card2_1 between ? and ? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + - util: CyclicSeqStringGen + params: [ 1, 980, "id-" ] + - util: CyclicSeqStringGen + params: [ 20, 1000, "id-" ] + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_third_part_hash_100_two_conditions + customTags: schematype=colocated,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? and col_varchar_card3_1=? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + - util: CyclicSeqStringGen + params: [ 1, 10000, "id-" ] + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml new file mode 100644 index 000000000..b0e3ea3f6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml @@ -0,0 +1,117 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS iNDG12_U_pkeyBigint1M_1; + - CREATE TABLE iNDG12_U_pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON iNDG12_U_pkeyBigint1M_1(col_bigint_card1_1); + - CREATE INDEX ON iNDG12_U_pkeyBigint1M_1(col_bigint_card2_1 ASC); + - CREATE INDEX ON iNDG12_U_pkeyBigint1M_1(col_bigint_card3_1 DESC); + + cleanup: + - DROP TABLE IF EXISTS iNDG12_U_pkeyBigint1M_1; + + loadRules: + - table: iNDG12_U_pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG12_1_index_scan_hash_skey_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=hashskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG12_U_pkeyBigint1M_1 where col_bigint_card1_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG12_2_index_scan_range_skey_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG12_U_pkeyBigint1M_1 where col_bigint_card2_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG12_3_index_scan_range_skey_desc_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from iNDG12_U_pkeyBigint1M_1 where col_bigint_card3_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG13_U_compare_index_scan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG13_U_compare_index_scan.yaml new file mode 100644 index 000000000..d5c49ea32 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG13_U_compare_index_scan.yaml @@ -0,0 +1,76 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG13_U_rangetbl_1; + - CREATE TABLE INDG13_U_rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG13_U_rangetbl_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS INDG13_U_rangetbl_1; + + loadRules: + - table: INDG13_U_rangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: INDG13_3_indexscan_using_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select col_bigint_id_1 from INDG13_U_rangetbl_1 where col_bigint_id_2>0 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG2_U_pkey_point_selects_range_table_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG2_U_pkey_point_selects_range_table_indexscan.yaml new file mode 100644 index 000000000..633936625 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG2_U_pkey_point_selects_range_table_indexscan.yaml @@ -0,0 +1,86 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG2_U_CompositeRangetbl_1; + - CREATE TABLE INDG2_U_CompositeRangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_id_2 ASC)); + + cleanup: + - DROP TABLE IF EXISTS INDG2_U_CompositeRangetbl_1; + + + loadRules: + + - table: INDG2_U_CompositeRangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG2_1_rangetbl_point_lookup_index_scan_using_comp_pkey_first_part_range + customTags: customer=7,schematype=colocated,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG2_U_CompositeRangetbl_1 where col_bigint_id_1=500009 + + - workload: INDG2_2_rangetbl_point_lookup_index_scan_using_comp_pkey_sec_part_range + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG2_U_CompositeRangetbl_1 where col_bigint_id_2=500009 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..3ede5418c --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml @@ -0,0 +1,101 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG4_U_CompositeRangetbl_1; + - CREATE TABLE INDG4_U_CompositeRangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_id_2 ASC)); + + cleanup: + - DROP TABLE IF EXISTS INDG4_U_CompositeRangetbl_1; + + loadRules: + + - table: INDG4_U_CompositeRangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG4_1_rangetbl_range_lookup_index_scan_using_comp_pkey_first_part_range + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_1>500000 + + - workload: INDG4_2_rangetbl_range_lookup_index_scan_using_comp_pkey_sec_part_range + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_2>500000 + + - workload: INDG4_3_rangetbl_range_lookup_index_scan_using_comp_pkey_using_two_conditions_range + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_1>250000 and col_bigint_id_2<750000 + + - workload: INDG4_4_rangetbl_range_lookup_index_scan_using_pkey_two_conditions_range + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG4_U_CompositeRangetbl_1 where col_bigint_id_1>250000 and col_bigint_id_1<750000 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml new file mode 100644 index 000000000..5a5734d3e --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml @@ -0,0 +1,85 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG6_U_Rangetbl_1; + - CREATE TABLE INDG6_U_Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON INDG6_U_Rangetbl_1(col_bigint_id_2 ASC, col_bigint_id_3 ASC); + + cleanup: + - DROP TABLE IF EXISTS INDG6_U_Rangetbl_1; + + loadRules: + + - table: INDG6_U_Rangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + + - workload: INDG6_1_INDG6_U_Rangetbl_point_lookup_index_scan_using_comp_range_skey_first_part_range + customTags: customer=1,schematype=colocated,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_1 where col_bigint_id_2=500009 + + - workload: INDG6_2_INDG6_U_Rangetbl_point_lookup_index_scan_using_comp_range_skey_sec_part_range + customTags: schematype=colocated,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_1 where col_bigint_id_3=500009 + + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..cbac25824 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yb_colocated/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml @@ -0,0 +1,99 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG8_U_Rangetbl_comp_skey_1; + - CREATE TABLE INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_2 ASC); + - CREATE INDEX ON INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_3 ASC, col_bigint_id_4 ASC); + + cleanup: + - DROP TABLE IF EXISTS INDG8_U_Rangetbl_comp_skey_1; + + loadRules: + + - table: INDG8_U_Rangetbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG8_1_rangetbl_range_lookup_index_scan_using_comp_skey_first_part_range + customTags: schematype=colocated,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_3>500000 + + - workload: INDG8_2_rangetbl_range_lookup_index_scan_using_comp_skey_sec_part_range + customTags: schematype=colocated,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_4>500000 + + - workload: INDG8_5_rangetbl_range_lookup_index_scan_using_comp_skey_two_conditions_range + customTags: schematype=colocated,partition=range,skey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_3>250000 and col_bigint_id_4<750000 + + - workload: INDG8_7_rangetbl_range_lookup_index_scan_using_skey_two_conditions_range + customTags: schematype=colocated,partition=range,skey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_3>250000 and col_bigint_id_3<750000 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml new file mode 100644 index 000000000..8eaa472e1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG10_U_pkey_index_hash_tbl_point_selects_data_cardinality_bigint.yaml @@ -0,0 +1,132 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 1000*10 10000*1 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG10_U_pkeyBigint1M_1; + - CREATE TABLE INDG10_U_pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + + cleanup: + - DROP TABLE IF EXISTS INDG10_U_pkeyBigint1M_1; + + loadRules: + - table: INDG10_U_pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomUniqueCyclicIntGen + params: [ 1000001, 1000050, 10000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG10_1_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash_1M + customTags: customer=2,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? + bindings: + - util: RandomUniqueCyclicIntGen + params: [ 1000001, 1000050 ] + + - workload: INDG10_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card2_1=? + bindings: + - util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG10_4_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k_two_conditions + customTags: customer=1,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? and col_bigint_card2_1 between ? and ? + bindings: + - util: RandomInt + params: [ 1000001, 1000050 ] + - util: RandomInt + params: [ 1000001, 1001000 ] + referenceName: start_value + - util: ExpressionEval + params: + - "start_value + 50" + + - workload: INDG10_5_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_third_part_hash_100_two_conditions + customTags: customer=2,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG10_U_pkeyBigint1M_1 where col_bigint_card1_1=? and col_bigint_card3_1=? + bindings: + - util: RandomInt + params: [ 1000001, 1000050 ] + - util: RandomInt + params: [ 1000001, 1010000 ] diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml new file mode 100644 index 000000000..ed31c6d05 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG11_U_pkey_index_hash_tbl_point_selects_data_cardinality_varchar.yaml @@ -0,0 +1,130 @@ +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 1000*10 10000*1 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG11_U_pkeyVarchar10_1; + - CREATE TABLE INDG11_U_pkeyVarchar10_1(col_varchar_card1_1 varchar(15), col_varchar_card2_1 varchar(15), col_varchar_card3_1 varchar(15), col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar_card1_1, col_varchar_card2_1, col_varchar_card3_1, col_bigint_id_1)); + + cleanup: + - DROP TABLE IF EXISTS INDG11_U_pkeyVarchar10_1; + + loadRules: + - table: INDG11_U_pkeyVarchar10_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_card1_ + count: 1 + util: RandomUniqueCyclicStringGen + params: [ 1, 50, 10000 ] + - name: col_varchar_card2_ + count: 1 + util: CyclicSeqStringGen + params: [ 1, 1000 ] + - name: col_varchar_card3_ + count: 1 + util: CyclicSeqStringGen + params: [ 1, 10000 ] + - name: col_bigint_id_ + count: 3 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG11_1_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash_1M + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card2_1=? + bindings: + - util: CyclicSeqStringGen + params: [ 1, 1000, "id-" ] + + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash_1k_two_conditions + customTags: customer=1,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=mixedpkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? and col_varchar_card2_1 between ? and ? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + - util: CyclicSeqStringGen + params: [ 1, 980, "id-" ] + - util: CyclicSeqStringGen + params: [ 20, 1000, "id-" ] + + - workload: INDG11_2_data_cardinality_hashtbl_point_lookup_index_scan_using_comp_skey_third_part_hash_100_two_conditions + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=mixedpkey,filtertype=pointselect,filterdatatype=varchar,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG11_U_pkeyVarchar10_1 where col_varchar_card1_1=? and col_varchar_card3_1=? + bindings: + - util: RandomUniqueCyclicStringGen + params: [ 1, 50, "id-" ] + - util: CyclicSeqStringGen + params: [ 1, 10000, "id-" ] diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml new file mode 100644 index 000000000..dd9ecde7c --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG12_U_sec_index_hash_tbl_data_cardinality_bigint.yaml @@ -0,0 +1,114 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG12_U_pkeyBigint1M_1; + - CREATE TABLE INDG12_U_pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG12_U_pkeyBigint1M_1(col_bigint_card1_1); + - CREATE INDEX ON INDG12_U_pkeyBigint1M_1(col_bigint_card2_1 ASC); + - CREATE INDEX ON INDG12_U_pkeyBigint1M_1(col_bigint_card3_1 DESC); + cleanup: + - DROP TABLE IF EXISTS INDG12_U_pkeyBigint1M_1; + loadRules: + - table: INDG12_U_pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + + executeRules: + + - workload: INDG12_1_index_scan_hash_skey_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=hashskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG12_U_pkeyBigint1M_1 where col_bigint_card1_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG12_2_index_scan_range_skey_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG12_U_pkeyBigint1M_1 where col_bigint_card2_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: INDG12_3_index_scan_range_skey_desc_point_select + customTags: schematype=regular,partition=hash,pkey=single,cardinality=multiple,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG12_U_pkeyBigint1M_1 where col_bigint_card3_1 IN (?,?,?,?,?); + bindings: + count: 5 + util: RandomInt + params: [ 1000001, 1001000 ] diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG13_U_compare_index_scan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG13_U_compare_index_scan.yaml new file mode 100644 index 000000000..a2a588753 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG13_U_compare_index_scan.yaml @@ -0,0 +1,75 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG13_U_rangetbl_1; + - CREATE TABLE INDG13_U_rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON INDG13_U_rangetbl_1(col_bigint_id_2 ASC); + + cleanup: + - DROP TABLE IF EXISTS INDG13_U_rangetbl_1; + + loadRules: + - table: INDG13_U_rangetbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: INDG13_3_indexscan_using_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select col_bigint_id_1 from INDG13_U_rangetbl_1 where col_bigint_id_2>0 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG1_U_pkey_point_selects_hash_table_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG1_U_pkey_point_selects_hash_table_indexscan.yaml new file mode 100644 index 000000000..4f1ad999a --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG1_U_pkey_point_selects_hash_table_indexscan.yaml @@ -0,0 +1,86 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG1_U_CompositeHashtbl_1; + - CREATE TABLE INDG1_U_CompositeHashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + + cleanup: + - DROP TABLE IF EXISTS INDG1_U_CompositeHashtbl_1; + + loadRules: + + - table: INDG1_U_CompositeHashtbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + + - workload: INDG1_1_hashtbl_point_lookup_index_scan_using_comp_pkey_first_part_hash + customTags: customer=10,schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG1_U_CompositeHashtbl_1 where col_bigint_id_1=500009 + + - workload: INDG1_2_hashtbl_point_lookup_index_scan_using_comp_pkey_sec_part_range + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG1_U_CompositeHashtbl_1 where col_bigint_id_2=500009 + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG2_U_pkey_point_selects_range_table_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG2_U_pkey_point_selects_range_table_indexscan.yaml new file mode 100644 index 000000000..7c1fb17e7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG2_U_pkey_point_selects_range_table_indexscan.yaml @@ -0,0 +1,86 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG2_U_CompositeHashtbl_1; + - CREATE TABLE INDG2_U_CompositeHashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_id_2 ASC)); + + cleanup: + - DROP TABLE IF EXISTS INDG2_U_CompositeHashtbl_1; + + + loadRules: + + - table: INDG2_U_CompositeHashtbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + + - workload: INDG2_1_rangetbl_point_lookup_index_scan_using_comp_pkey_first_part_range + customTags: customer=7,schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG2_U_CompositeHashtbl_1 where col_bigint_id_1=500009 + + - workload: INDG2_2_rangetbl_point_lookup_index_scan_using_comp_pkey_sec_part_range + customTags: schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG2_U_CompositeHashtbl_1 where col_bigint_id_2=500009 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG3_U_pkey_hash_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG3_U_pkey_hash_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..3245cd6cb --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG3_U_pkey_hash_tbl_range_selects_indexscan.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG3_U_CompositeHashtbl_1; + - CREATE TABLE INDG3_U_CompositeHashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + + cleanup: + - DROP TABLE IF EXISTS INDG3_U_CompositeHashtbl_1; + + loadRules: + + - table: INDG3_U_CompositeHashtbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG3_1_hashtbl_range_lookup_index_scan_using_comp_pkey_first_part_hash + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG3_U_CompositeHashtbl_1 where col_bigint_id_1>500000 + + - workload: INDG3_2_hashtbl_range_lookup_index_scan_using_comp_pkey_sec_part_range + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG3_U_CompositeHashtbl_1 where col_bigint_id_2>500000 + + - workload: INDG3_3_hashtbl_range_lookup_index_scan_using_comp_pkey_using_two_conditions_hash_range + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=two,filteron=mixedpkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG3_U_CompositeHashtbl_1 where col_bigint_id_1>250000 and col_bigint_id_2<750000 + + - workload: INDG3_4_hashtbl_range_lookup_index_scan_using_pkey_two_conditions_both_hash + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=two,filteron=hashpkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG3_U_CompositeHashtbl_1 where col_bigint_id_1>250000 and col_bigint_id_1<750000 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..0e06bf30e --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG4_U_pkey_range_tbl_range_selects_indexscan.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG4_U_CompositeHashtbl_1; + - CREATE TABLE INDG4_U_CompositeHashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_id_2 ASC)); + + cleanup: + - DROP TABLE IF EXISTS INDG4_U_CompositeHashtbl_1; + + loadRules: + + - table: INDG4_U_CompositeHashtbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG4_1_rangetbl_range_lookup_index_scan_using_comp_pkey_first_part_range + customTags: schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeHashtbl_1 where col_bigint_id_1>500000 + + - workload: INDG4_2_rangetbl_range_lookup_index_scan_using_comp_pkey_sec_part_range + customTags: schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeHashtbl_1 where col_bigint_id_2>500000 + + - workload: INDG4_3_rangetbl_range_lookup_index_scan_using_comp_pkey_using_two_conditions_range + customTags: schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG4_U_CompositeHashtbl_1 where col_bigint_id_1>250000 and col_bigint_id_2<750000 + + - workload: INDG4_4_rangetbl_range_lookup_index_scan_using_pkey_two_conditions_range + customTags: schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG4_U_CompositeHashtbl_1 where col_bigint_id_1>250000 and col_bigint_id_1<750000 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG5_U_sec_index_hash_tbl_point_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG5_U_sec_index_hash_tbl_point_selects_indexscan.yaml new file mode 100644 index 000000000..c6f11bc67 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG5_U_sec_index_hash_tbl_point_selects_indexscan.yaml @@ -0,0 +1,82 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG5_U_Hashtbl_comp_skey_1; + - CREATE TABLE INDG5_U_Hashtbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG5_U_Hashtbl_comp_skey_1(col_bigint_id_2, col_bigint_id_3); + - CREATE INDEX ON INDG5_U_Hashtbl_comp_skey_1(col_bigint_id_4, col_bigint_id_5 ASC); + + cleanup: + - DROP TABLE IF EXISTS INDG5_U_Hashtbl_comp_skey_1; + + loadRules: + + - table: INDG5_U_Hashtbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG5_1_hashtbl_point_lookup_index_scan_using_comp_skey_first_part_hash + customTags: customer=9,schematype=regular,partition=hash,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG5_U_Hashtbl_comp_skey_1 where col_bigint_id_2=500009 + + - workload: INDG5_2_hashtbl_point_lookup_index_scan_using_comp_skey_sec_part_hash + customTags: schematype=regular,partition=hash,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG5_U_Hashtbl_comp_skey_1 where col_bigint_id_3=500009 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml new file mode 100644 index 000000000..89669d3a5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG6_U_sec_index_range_tbl_point_selects_indexscan.yaml @@ -0,0 +1,99 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG6_U_Rangetbl_comp_skey_1; + - CREATE TABLE INDG6_U_Rangetbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON INDG6_U_Rangetbl_comp_skey_1(col_bigint_id_2 ASC, col_bigint_id_3 ASC); + - CREATE INDEX ON INDG6_U_Rangetbl_comp_skey_1(col_bigint_id_4, col_bigint_id_5 ASC); + + cleanup: + - DROP TABLE IF EXISTS INDG6_U_Rangetbl_comp_skey_1; + + loadRules: + + - table: INDG6_U_Rangetbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG6_1_rangetbl_point_lookup_index_scan_using_comp_range_skey_first_part_range + customTags: customer=1,schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_comp_skey_1 where col_bigint_id_2=500009 + + - workload: INDG6_2_rangetbl_point_lookup_index_scan_using_comp_range_skey_sec_part_range + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_comp_skey_1 where col_bigint_id_3=500009 + + - workload: INDG6_4_rangetbl_point_lookup_index_scan_using_mixed_comp_skey_first_part_hash + customTags: customer=1,schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_comp_skey_1 where col_bigint_id_4=500009 + + - workload: INDG6_5_rangetbl_point_lookup_index_scan_using_mixed_comp_skey_sec_part_range + customTags: customer=1,schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=pointselect,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG6_U_Rangetbl_comp_skey_1 where col_bigint_id_5=500009 + diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG7_U_sec_index_hash_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG7_U_sec_index_hash_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..82f68661d --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG7_U_sec_index_hash_tbl_range_selects_indexscan.yaml @@ -0,0 +1,98 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG7_U_Hashtbl_comp_skey_1; + - CREATE TABLE INDG7_U_Hashtbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON INDG7_U_Hashtbl_comp_skey_1(col_bigint_id_2, col_bigint_id_3); + - CREATE INDEX ON INDG7_U_Hashtbl_comp_skey_1(col_bigint_id_4, col_bigint_id_5 ASC); + + cleanup: + - DROP TABLE IF EXISTS INDG7_U_Hashtbl_comp_skey_1; + + loadRules: + + - table: INDG7_U_Hashtbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG7_1_hashtbl_range_lookup_index_scan_using_comp_skey_first_part_hash + customTags: schematype=regular,partition=hash,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_2>500000 + + - workload: INDG7_2_hashtbl_range_lookup_index_scan_using_comp_skey_sec_part_range + customTags: schematype=regular,partition=hash,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_3>500000 + + - workload: INDG7_6_hashtbl_range_lookup_index_scan_using_mixed_comp_skey_two_conditions_hash_range + customTags: schematype=regular,partition=hash,skey=composite,cardinality=single,projection=all,filtercount=two,filteron=mixedskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_4>250000 and col_bigint_id_5<750000 + + - workload: INDG7_7_hashtbl_range_lookup_index_scan_using_skey_two_conditions_on_hash + customTags: schematype=regular,partition=hash,skey=composite,cardinality=single,projection=all,filtercount=two,filteron=hashskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG7_U_Hashtbl_comp_skey_1 where col_bigint_id_2>250000 and col_bigint_id_2<750000 diff --git a/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml new file mode 100644 index 000000000..a46c45ed9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/Index_workloads/yugabyte/INDG8_U_sec_index_range_tbl_range_selects_indexscan.yaml @@ -0,0 +1,124 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS INDG8_U_Rangetbl_comp_skey_1; + - CREATE TABLE INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_2 ASC, col_bigint_id_3 ASC); + - CREATE INDEX ON INDG8_U_Rangetbl_comp_skey_1(col_bigint_id_4, col_bigint_id_5 ASC); + + cleanup: + - DROP TABLE IF EXISTS INDG8_U_Rangetbl_comp_skey_1; + + loadRules: + + - table: INDG8_U_Rangetbl_comp_skey_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 6 + util: RandomUniqueIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: INDG8_1_rangetbl_range_lookup_index_scan_using_comp_skey_first_part_range + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_2>500000 + + - workload: INDG8_2_rangetbl_range_lookup_index_scan_using_comp_skey_sec_part_range + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_3>500000 + + - workload: INDG8_3_rangetbl_range_lookup_index_scan_using_mixed_comp_skey_first_part_hash + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_4>500000 + + - workload: INDG8_4_rangetbl_range_lookup_index_scan_using_mixed_comp_skey_sec_part_range + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_5>500000 + + - workload: INDG8_5_rangetbl_range_lookup_index_scan_using_comp_skey_two_conditions_range + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_2>250000 and col_bigint_id_3<750000 + + - workload: INDG8_6_rangetbl_range_lookup_index_scan_using_mixed_comp_skey_two_conditions_hash_range + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=two,filteron=mixedskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_4>250000 and col_bigint_id_5<750000 + + - workload: INDG8_7_rangetbl_range_lookup_index_scan_using_skey_two_conditions_range + customTags: schematype=regular,partition=range,skey=composite,cardinality=single,projection=all,filtercount=two,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: hashtbl_index_scan_pkey + weight: 100 + queries: + - query: select * from INDG8_U_Rangetbl_comp_skey_1 where col_bigint_id_2>250000 and col_bigint_id_2<750000 + + diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG10_aggregate_cardinality.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG10_aggregate_cardinality.yaml new file mode 100644 index 000000000..57054a623 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG10_aggregate_cardinality.yaml @@ -0,0 +1,126 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +analyze_on_all_tables: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG10_1_count_point_select_multiple_values + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 = ? + bindings: + - util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_2_count_point_select_multiple_values_IN + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 in (?,?) + bindings: + - util: RandomInt + count: 2 + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_3_count_point_select_multiple_values_IN_groupby + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 in (?,?) group by col_bigint_card2_1 + bindings: + - util: RandomInt + count: 2 + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_4_count_indexed_col_multiple_values_groupby + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_card2_1,count(col_bigint_card2_1) from pkeyBigint1M_1 group by col_bigint_card2_1 + + - workload: AGGRG10_5_count_indexed_col_multiple_values_groupby_orderby + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_card2_1,count(col_bigint_card2_1) from pkeyBigint1M_1 group by col_bigint_card2_1 order by col_bigint_card2_1 + + - workload: AGGRG10_6_distinct_indexed_col_multiple_values_orderby + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select distinct(col_bigint_card3_1) from pkeyBigint1M_1 order by col_bigint_card3_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG2_impact_of_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG2_impact_of_increasing_row.yaml new file mode 100644 index 000000000..22cc64dd9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG2_impact_of_increasing_row.yaml @@ -0,0 +1,163 @@ +#TEST FOR POSTGRES +#GOAL1 Impact of increasing rows on count aggregate +#TESTS: +#Aggregate function count on 0.1M rows +#Aggregate function count on 1M rows +#Aggregate function count on 10M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG2_count_bigint_1L_table_rows + run: + - name: pg_count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG2_count_bigint_1M_table_rows + run: + - name: pg_count_bigint_1M_table_rows + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG2_count_bigint_10M_table_rows + run: + - name: pg_count_bigint_10M_table_rows + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG3_projection_datatype_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG3_projection_datatype_impact.yaml new file mode 100644 index 000000000..b5ca153f8 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG3_projection_datatype_impact.yaml @@ -0,0 +1,107 @@ +#TEST FOR POSTGRES +#GOAL3 Impact of projection datatype on aggregate count +#TESTS: +#Aggregate function count on all tupples(*) +#Aggregate function count on indexed bigint column +#Aggregate function count on indexed float column +#Aggregate function count on indexed varchar(10) column +#Aggregate function count on indexed varchar(500) column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + - CREATE INDEX ON Indexed1M_1(col_varchar10_id_1); + - CREATE INDEX ON Indexed1M_1(col_varchar500_id_1); + - CREATE INDEX ON Indexed1M_1(col_float5_1); + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG3_count_on_all_tupples_columns + run: + - name: pg_count_bigint_on_all_tupples_columns + weight: 100 + queries: + - query: select count(*) from Indexed1M_1 + - workload: AGGRG3_count_bigint_on_indexed + run: + - name: pg_count_on_indexed_bigint + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_float + customTags: customer=1 + run: + - name: pg_count_on_indexed_varchar10 + weight: 100 + queries: + - query: select count(col_float5_1) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_varchar10 + customTags: customer=1 + run: + - name: pg_count_on_indexed_varchar10 + weight: 100 + queries: + - query: select count(col_varchar10_id_1) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_varchar500 + run: + - name: pg_count_on_indexed_varchar500 + weight: 100 + queries: + - query: select count(col_varchar500_id_1) from Indexed1M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG4_impact_of_distinct_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG4_impact_of_distinct_on_increasing_row.yaml new file mode 100644 index 000000000..9246704e6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG4_impact_of_distinct_on_increasing_row.yaml @@ -0,0 +1,165 @@ +#TEST FOR POSTGRES +#GOAL4 Impact of increasing rows on distinct aggregate +#TESTS: +#Aggregate function distinct on 0.1M rows +#Aggregate function distinct on 1M rows +#Aggregate function distinct on 10M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG4_distinct_bigint_1L_table_rows + customTags: customer=1 + run: + - name: pg_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG4_distinct_bigint_1M_table_rows + run: + - name: pg_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG4_distinct_bigint_10M_table_rows + customTags: customer=2 + run: + - name: pg_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG5_impact_of_max_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG5_impact_of_max_on_increasing_row.yaml new file mode 100644 index 000000000..a5b6db049 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG5_impact_of_max_on_increasing_row.yaml @@ -0,0 +1,164 @@ +#TEST FOR POSTGRES +#GOAL5 Impact of increasing rows on max aggregate +#TESTS: +#Aggregate function max on 0.1M rows +#Aggregate function max on 1M rows +#Aggregate function max on 10M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG5_max_bigint_1L_table_rows + customTags: customer=2 + run: + - name: pg_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG5_max_bigint_1M_table_rows + run: + - name: pg_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG5_max_bigint_10M_table_rows + run: + - name: pg_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG6_impact_of_sum_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG6_impact_of_sum_on_increasing_row.yaml new file mode 100644 index 000000000..6b6202c8c --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG6_impact_of_sum_on_increasing_row.yaml @@ -0,0 +1,164 @@ +#TEST FOR POSTGRES +#GOAL6 Impact of increasing rows on sum aggregate +#TESTS: +#Aggregate function sum on 0.1M rows +#Aggregate function sum on 1M rows +#Aggregate function sum on 10M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG6_sum_bigint_1L_table_rows + run: + - name: pg_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG6_sum_bigint_1M_table_rows + run: + - name: pg_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG6_sum_bigint_10M_table_rows + customTags: customer=2 + run: + - name: pg_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG7_filter_condition_index_type_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG7_filter_condition_index_type_impact.yaml new file mode 100644 index 000000000..bafa5dd33 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG7_filter_condition_index_type_impact.yaml @@ -0,0 +1,94 @@ +#TEST FOR POSTGRES +#GOAL7 Impact of index type on aggregation +#TESTS: +#Aggregate function count with 1 filter condition on non indexed column of bigint datatype +#Aggregate function count with 1 filter condition on pkey column of bigint datatype +#Aggregate function count with 1 filter condition on secondary indexed column of bigint datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG7_count_bigint_non_indexed_column_with_filter_condition + customTags: customer=2 + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_1 where col_bigint_id_3>1 + - workload: AGGRG7_count_bigint_pkey_column_with_filter_condition + customTags: customer=2 + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 where col_bigint_id_1>1 + - workload: AGGRG7_count_bigint_secondary_indexed_column_with_filter_condition + customTags: customer=2 + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG8_composite_key_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG8_composite_key_impact.yaml new file mode 100644 index 000000000..401204b5a --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG8_composite_key_impact.yaml @@ -0,0 +1,187 @@ +#TEST FOR POSTGRES +#GOAL8 Impact of composite constraints +#Aggregate function count on 1st elelemt of composite pkey +#Aggregate function count on 2nd elelemt of composite pkey +#Aggregate function count on 1st elelemt of composite pkey with 1 filter on 1st element +#Aggregate function count on 2nd elelemt of composite pkey with 1 filter on 2nd element +#Aggregate function count on 1st elelemt of composite pkey with 1 filter on 2nd element +#Aggregate function count on 2nd elelemt of composite pkey with 1 filter on 1st element +#Aggregate function count on 1st elelemt of composite secondary key +#Repeat for indexed col +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_comp2keys_1; + - DROP TABLE IF EXISTS Indexed1M_comp2keys_1; + - CREATE TABLE pkeyBigint1M_comp2keys_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + - CREATE TABLE Indexed1M_comp2keys_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_comp2keys_1(col_bigint_id_2, col_bigint_id_3); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_comp2keys_1; + - DROP TABLE IF EXISTS Indexed1M_comp2keys_1; + loadRules: + - table: pkeyBigint1M_comp2keys_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: Indexed1M_comp2keys_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG8_count_bigint_comp_pkey_first_ele + run: + - name: pg_count_bigint_comp_pkey_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_pkey_second_ele + run: + - name: pg_count_bigint_comp_pkey_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_pkey_withfilter_first_ele + run: + - name: pg_count_bigint_comp_pkey_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 where col_bigint_id_1>1 + - workload: AGGRG8_count_bigint_comp_pkey_withfilter_second_ele + run: + - name: pg_count_bigint_comp_pkey_withfilter_second_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_pkey_project_first_ele_withfilter_sec_ele + run: + - name: pg_count_bigint_comp_pkey_project_first_ele_withfilter_sec_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_pkey_project_sec_ele_withfilter_first_ele + run: + - name: pg_count_bigint_comp_pkey_project_sec_ele_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 where col_bigint_id_1>1 + + + - workload: AGGRG8_count_bigint_comp_index_first_ele + run: + - name: pg_count_bigint_comp_index_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_index_second_ele + run: + - name: pg_count_bigint_comp_index_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_index_withfilter_first_ele + run: + - name: pg_count_bigint_comp_index_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_index_withfilter_second_ele + run: + - name: pg_count_bigint_comp_index_withfilter_second_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 where col_bigint_id_3>1 + - workload: AGGRG8_count_bigint_comp_index_project_first_ele_withfilter_sec_ele + run: + - name: pg_count_bigint_comp_index_project_first_ele_withfilter_sec_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 where col_bigint_id_3>1 + - workload: AGGRG8_count_bigint_comp_index_project_sec_ele_withfilter_first_ele + run: + - name: pg_count_bigint_comp_index_project_sec_ele_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG9_aggregates_on_hash_partitioned_table.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG9_aggregates_on_hash_partitioned_table.yaml new file mode 100644 index 000000000..d75d231ba --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/postgres/AGGRG9_aggregates_on_hash_partitioned_table.yaml @@ -0,0 +1,102 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL9 Aggregates on hash partioned tables +#Aggregate function count on non indexed column of bigint datatype +#Aggregate function count on hash pkey column of bigint datatype +#Aggregate function count on hash secondary indexed column of bigint datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG9_count_bigint_non_indexed_column + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_pkey_column + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_pkey_column_with_filter + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 where col_bigint_id_1>1 + - workload: AGGRG9_count_bigint_hash_secondary_indexed_column + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_secondary_indexed_column_with_filter + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG10_aggregate_cardinality.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG10_aggregate_cardinality.yaml new file mode 100644 index 000000000..a6c129ab5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG10_aggregate_cardinality.yaml @@ -0,0 +1,134 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG10_1_count_point_select_multiple_values + customTags: schematype=colocated,pkey=composite,partition=range,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,filteron=rangepkey,filtertype=pointselect + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 = ? + bindings: + - util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_2_count_point_select_multiple_values_IN + customTags: schematype=colocated,pkey=composite,partition=range,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,filteron=rangepkey,filtertype=IN + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 in (?,?) + bindings: + - util: RandomInt + count: 2 + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_3_count_point_select_multiple_values_IN_groupby + customTags: schematype=colocated,pkey=composite,partition=range,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,filteron=rangepkey,filtertype=IN,groupby=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 in (?,?) group by col_bigint_card2_1 + bindings: + - util: RandomInt + count: 2 + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_4_count_indexed_col_multiple_values_groupby + customTags: schematype=colocated,pkey=composite,partition=range,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,groupby=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_card2_1,count(col_bigint_card2_1) from pkeyBigint1M_1 group by col_bigint_card2_1 + + - workload: AGGRG10_5_count_indexed_col_multiple_values_groupby_orderby + customTags: schematype=colocated,pkey=composite,partition=range,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,groupby=rangepkey,orderbyon=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_card2_1,count(col_bigint_card2_1) from pkeyBigint1M_1 group by col_bigint_card2_1 order by col_bigint_card2_1 + + - workload: AGGRG10_6_distinct_indexed_col_multiple_values_orderby + customTags: schematype=colocated,partition=range,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,orderbyon=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select distinct(col_bigint_card3_1) from pkeyBigint1M_1 order by col_bigint_card3_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG2_impact_of_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG2_impact_of_increasing_row.yaml new file mode 100644 index 000000000..301e35bfe --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG2_impact_of_increasing_row.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL1 Impact of increasing rows on count aggregate +#TESTS: +#Aggregate function count on 0.1M rows +#Aggregate function count on 1M rows +#Aggregate function count on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG2_count_bigint_1L_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG2_count_bigint_1M_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_count_bigint_1M_table_rows + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG2_count_bigint_10M_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_count_bigint_10M_table_rows + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG3_projection_datatype_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG3_projection_datatype_impact.yaml new file mode 100644 index 000000000..daa6504f4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG3_projection_datatype_impact.yaml @@ -0,0 +1,112 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL3 Impact of projection datatype on aggregate count +#TESTS: +#Aggregate function count on all tupples(*) +#Aggregate function count on indexed bigint column +#Aggregate function count on indexed float column +#Aggregate function count on indexed varchar(10) column +#Aggregate function count on indexed varchar(500) column +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + - CREATE INDEX ON Indexed1M_1(col_varchar10_id_1); + - CREATE INDEX ON Indexed1M_1(col_varchar500_id_1); + - CREATE INDEX ON Indexed1M_1(col_float5_1); + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG3_count_on_all_tupples_columns + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: ybc_count_bigint_on_all_tupples_columns + weight: 100 + queries: + - query: select count(*) from Indexed1M_1 + - workload: AGGRG3_count_bigint_on_indexed + customTags: schematype=colocated,partition=range,pkey=asc,columndatatype=bigint,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: ybc_count_on_indexed_bigint + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_float + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,columndatatype=float,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: ybc_count_on_indexed_varchar10 + weight: 100 + queries: + - query: select count(col_float5_1) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_varchar10 + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,columndatatype=varchar,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: ybc_count_on_indexed_varchar10 + weight: 100 + queries: + - query: select count(col_varchar10_id_1) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_varchar500 + customTags: schematype=colocated,partition=range,pkey=asc,columndatatype=varchar,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: ybc_count_on_indexed_varchar500 + weight: 100 + queries: + - query: select count(col_varchar500_id_1) from Indexed1M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG4_impact_of_distinct_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG4_impact_of_distinct_on_increasing_row.yaml new file mode 100644 index 000000000..a027787f5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG4_impact_of_distinct_on_increasing_row.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL4 Impact of increasing rows on distinct aggregate +#TESTS: +#Aggregate function distinct on 0.1M rows +#Aggregate function distinct on 1M rows +#Aggregate function distinct on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG4_distinct_bigint_1L_table_rows + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,aggregate=distinct,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG4_distinct_bigint_1M_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=distinct,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG4_distinct_bigint_10M_table_rows + customTags: customer=2,schematype=colocated,partition=range,pkey=asc,aggregate=distinct,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG5_impact_of_max_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG5_impact_of_max_on_increasing_row.yaml new file mode 100644 index 000000000..9e843dbc6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG5_impact_of_max_on_increasing_row.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL5 Impact of increasing rows on max aggregate +#TESTS: +#Aggregate function max on 0.1M rows +#Aggregate function max on 1M rows +#Aggregate function max on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG5_max_bigint_1L_table_rows + customTags: customer=2,schematype=colocated,partition=range,pkey=asc,aggregate=max,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG5_max_bigint_1M_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=max,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG5_max_bigint_10M_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=max,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG6_impact_of_sum_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG6_impact_of_sum_on_increasing_row.yaml new file mode 100644 index 000000000..87de9b706 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG6_impact_of_sum_on_increasing_row.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL6 Impact of increasing rows on sum aggregate +#TESTS: +#Aggregate function sum on 0.1M rows +#Aggregate function sum on 1M rows +#Aggregate function sum on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG6_sum_bigint_1L_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=sum,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG6_sum_bigint_1M_table_rows + customTags: schematype=colocated,partition=range,pkey=asc,aggregate=sum,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG6_sum_bigint_10M_table_rows + customTags: customer=2,schematype=colocated,partition=range,pkey=asc,aggregate=sum,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG7_filter_condition_index_type_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG7_filter_condition_index_type_impact.yaml new file mode 100644 index 000000000..bf672a3da --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG7_filter_condition_index_type_impact.yaml @@ -0,0 +1,96 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL7 Impact of index type on aggregation +#TESTS: +#Aggregate function count with 1 filter condition on non indexed column of bigint datatype +#Aggregate function count with 1 filter condition on pkey column of bigint datatype +#Aggregate function count with 1 filter condition on secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG7_count_bigint_non_indexed_column_with_filter_condition + customTags: customer=2,schematype=colocated,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=nonindexed,filteron=nonindexed,filtertype=comparision + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_1 where col_bigint_id_3>1 + - workload: AGGRG7_count_bigint_pkey_column_with_filter_condition + customTags: customer=2,schematype=colocated,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=nonindexed,filteron=rangepkey,filtertype=comparision + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 where col_bigint_id_1>1 + - workload: AGGRG7_count_bigint_secondary_indexed_column_with_filter_condition + customTags: customer=2,schematype=colocated,partition=range,skey=asc,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=nonindexed,filteron=rangeskey,filtertype=comparision + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG8_composite_key_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG8_composite_key_impact.yaml new file mode 100644 index 000000000..556f0d853 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG8_composite_key_impact.yaml @@ -0,0 +1,201 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL8 Impact of composite constraints +#Aggregate function count on 1st elelemt of composite pkey +#Aggregate function count on 2nd elelemt of composite pkey +#Aggregate function count on 1st elelemt of composite pkey with 1 filter on 1st element +#Aggregate function count on 2nd elelemt of composite pkey with 1 filter on 2nd element +#Aggregate function count on 1st elelemt of composite pkey with 1 filter on 2nd element +#Aggregate function count on 2nd elelemt of composite pkey with 1 filter on 1st element +#Aggregate function count on 1st elelemt of composite secondary key +#Repeat for indexed col +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_comp2keys_1; + - DROP TABLE IF EXISTS Indexed1M_comp2keys_1; + - CREATE TABLE pkeyBigint1M_comp2keys_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2)); + - CREATE TABLE Indexed1M_comp2keys_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_comp2keys_1(col_bigint_id_2, col_bigint_id_3); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_comp2keys_1; + - DROP TABLE IF EXISTS Indexed1M_comp2keys_1; + loadRules: + - table: pkeyBigint1M_comp2keys_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: Indexed1M_comp2keys_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG8_count_bigint_comp_pkey_first_ele + customTags: schematype=colocated,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_count_bigint_comp_pkey_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_pkey_second_ele + customTags: schematype=colocated,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: ybc_count_bigint_comp_pkey_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_pkey_withfilter_first_ele + customTags: schematype=colocated,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_pkey_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 where col_bigint_id_1>1 + - workload: AGGRG8_count_bigint_comp_pkey_withfilter_second_ele + customTags: schematype=colocated,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_pkey_withfilter_second_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_pkey_project_first_ele_withfilter_sec_ele + customTags: schematype=colocated,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_pkey_project_first_ele_withfilter_sec_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_pkey_project_sec_ele_withfilter_first_ele + customTags: schematype=colocated,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_pkey_project_sec_ele_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 where col_bigint_id_1>1 + + + - workload: AGGRG8_count_bigint_comp_index_first_ele + customTags: schematype=colocated,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: ybc_count_bigint_comp_index_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_index_second_ele + customTags: schematype=colocated,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: ybc_count_bigint_comp_index_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_index_withfilter_first_ele + customTags: schematype=colocated,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_index_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_index_withfilter_second_ele + customTags: schematype=colocated,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_index_withfilter_second_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 where col_bigint_id_3>1 + - workload: AGGRG8_count_bigint_comp_index_project_first_ele_withfilter_sec_ele + customTags: schematype=colocated,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_index_project_first_ele_withfilter_sec_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 where col_bigint_id_3>1 + - workload: AGGRG8_count_bigint_comp_index_project_sec_ele_withfilter_first_ele + customTags: schematype=colocated,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: ybc_count_bigint_comp_index_project_sec_ele_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG9_aggregates_on_hash_partitioned_table.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG9_aggregates_on_hash_partitioned_table.yaml new file mode 100644 index 000000000..5893e287d --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yb_colocated/AGGRG9_aggregates_on_hash_partitioned_table.yaml @@ -0,0 +1,104 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG9_count_bigint_non_indexed_column + customTags: schematype=colocated,partition=range,aggregate=count,cardinality=single,projection=aggregate,aggregateon=nonindexed + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_pkey_column + customTags: schematype=colocated,partition=range,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_pkey_column_with_filter + customTags: schematype=colocated,partition=range,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=hashpkey,filteron=rangepkey,filtertype=comparision + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 where col_bigint_id_1>1 + - workload: AGGRG9_count_bigint_hash_secondary_indexed_column + customTags: schematype=colocated,partition=range,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_secondary_indexed_column_with_filter + customTags: schematype=colocated,partition=range,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG10_aggregate_cardinality.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG10_aggregate_cardinality.yaml new file mode 100644 index 000000000..05bc722c0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG10_aggregate_cardinality.yaml @@ -0,0 +1,134 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1 , col_bigint_card2_1 , col_bigint_card3_1 , col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + - workload: AGGRG10_1_count_point_select_multiple_values + customTags: schematype=regular,pkey=composite,partition=hash,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,filteron=rangepkey,filtertype=pointselect + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 = ? + bindings: + - util: RandomInt + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_2_count_point_select_multiple_values_IN + customTags: schematype=regular,pkey=composite,partition=hash,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,filteron=rangepkey,filtertype=IN + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 in (?,?) + bindings: + - util: RandomInt + count: 2 + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_3_count_point_select_multiple_values_IN_groupby + customTags: schematype=regular,pkey=composite,partition=hash,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,filteron=rangepkey,filtertype=IN,groupby=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card2_1 in (?,?) group by col_bigint_card2_1 + bindings: + - util: RandomInt + count: 2 + params: [ 1000001, 1001000 ] + + - workload: AGGRG10_4_count_indexed_col_multiple_values_groupby + customTags: schematype=regular,pkey=composite,partition=hash,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,groupby=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_card2_1,count(col_bigint_card2_1) from pkeyBigint1M_1 group by col_bigint_card2_1 + + - workload: AGGRG10_5_count_indexed_col_multiple_values_groupby_orderby + customTags: schematype=regular,pkey=composite,partition=hash,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,groupby=rangepkey,orderbyon=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_card2_1,count(col_bigint_card2_1) from pkeyBigint1M_1 group by col_bigint_card2_1 order by col_bigint_card2_1 + + - workload: AGGRG10_6_distinct_indexed_col_multiple_values_orderby + customTags: schematype=regular,partition=hash,aggregate=count,cardinality=multiple,projection=aggregate,aggregateon=rangepkey,queryshape=aggregate,orderbyon=rangepkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select distinct(col_bigint_card3_1) from pkeyBigint1M_1 order by col_bigint_card3_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG2_impact_of_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG2_impact_of_increasing_row.yaml new file mode 100644 index 000000000..c50515088 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG2_impact_of_increasing_row.yaml @@ -0,0 +1,169 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL1 Impact of increasing rows on count aggregate +#TESTS: +#Aggregate function count on 0.1M rows +#Aggregate function count on 1M rows +#Aggregate function count on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + - workload: AGGRG2_count_bigint_1L_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG2_count_bigint_1M_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_count_bigint_1M_table_rows + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG2_count_bigint_10M_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_count_bigint_10M_table_rows + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG3_projection_datatype_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG3_projection_datatype_impact.yaml new file mode 100644 index 000000000..ec661595f --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG3_projection_datatype_impact.yaml @@ -0,0 +1,111 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL3 Impact of projection datatype on aggregate count +#TESTS: +#Aggregate function count on all tupples(*) +#Aggregate function count on indexed bigint column +#Aggregate function count on indexed float column +#Aggregate function count on indexed varchar(10) column +#Aggregate function count on indexed varchar(500) column +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2 ASC); + - CREATE INDEX ON Indexed1M_1(col_varchar10_id_1 ASC); + - CREATE INDEX ON Indexed1M_1(col_varchar500_id_1 ASC); + - CREATE INDEX ON Indexed1M_1(col_float5_1 ASC); + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG3_count_on_all_tupples_columns + customTags: schematype=regular,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: yb_count_bigint_on_all_tupples_columns + weight: 100 + queries: + - query: select count(*) from Indexed1M_1 + - workload: AGGRG3_count_bigint_on_indexed + customTags: schematype=regular,partition=range,pkey=asc,columndatatype=bigint,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: yb_count_on_indexed_bigint + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_float + customTags: customer=1,schematype=regular,partition=range,pkey=asc,columndatatype=float,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: yb_count_on_indexed_varchar10 + weight: 100 + queries: + - query: select count(col_float5_1) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_varchar10 + customTags: customer=1,schematype=regular,partition=range,pkey=asc,columndatatype=varchar,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: yb_count_on_indexed_varchar10 + weight: 100 + queries: + - query: select count(col_varchar10_id_1) from Indexed1M_1 + - workload: AGGRG3_count_on_indexed_varchar500 + customTags: schematype=regular,partition=range,pkey=asc,columndatatype=varchar,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: yb_count_on_indexed_varchar500 + weight: 100 + queries: + - query: select count(col_varchar500_id_1) from Indexed1M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG4_impact_of_distinct_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG4_impact_of_distinct_on_increasing_row.yaml new file mode 100644 index 000000000..1b1e856c4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG4_impact_of_distinct_on_increasing_row.yaml @@ -0,0 +1,167 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL4 Impact of increasing rows on distinct aggregate +#TESTS: +#Aggregate function distinct on 0.1M rows +#Aggregate function distinct on 1M rows +#Aggregate function distinct on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG4_distinct_bigint_1L_table_rows + customTags: customer=1,schematype=regular,partition=range,pkey=asc,aggregate=distinct,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG4_distinct_bigint_1M_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=distinct,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG4_distinct_bigint_10M_table_rows + customTags: customer=2,schematype=regular,partition=range,pkey=asc,aggregate=distinct,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select distinct(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG5_impact_of_max_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG5_impact_of_max_on_increasing_row.yaml new file mode 100644 index 000000000..8d6fb3b46 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG5_impact_of_max_on_increasing_row.yaml @@ -0,0 +1,167 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL5 Impact of increasing rows on max aggregate +#TESTS: +#Aggregate function max on 0.1M rows +#Aggregate function max on 1M rows +#Aggregate function max on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: AGGRG5_max_bigint_1L_table_rows + customTags: customer=2,schematype=regular,partition=range,pkey=asc,aggregate=max,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG5_max_bigint_1M_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=max,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG5_max_bigint_10M_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=max,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select max(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG6_impact_of_sum_on_increasing_row.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG6_impact_of_sum_on_increasing_row.yaml new file mode 100644 index 000000000..4f7e6ee86 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG6_impact_of_sum_on_increasing_row.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL6 Impact of increasing rows on sum aggregate +#TESTS: +#Aggregate function sum on 0.1M rows +#Aggregate function sum on 1M rows +#Aggregate function sum on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: CyclicSeqIntGen + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG6_sum_bigint_1L_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=sum,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_non_indexed_column + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint1L_1 + - workload: AGGRG6_sum_bigint_1M_table_rows + customTags: schematype=regular,partition=range,pkey=asc,aggregate=sum,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_1M_table_rows + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint1M_1 + - workload: AGGRG6_sum_bigint_10M_table_rows + customTags: customer=2,schematype=regular,partition=range,pkey=asc,aggregate=sum,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_distinct_bigint_10M_table_rows + weight: 100 + queries: + - query: select sum(col_bigint_id_1) from pkeyBigint10M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG7_filter_condition_index_type_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG7_filter_condition_index_type_impact.yaml new file mode 100644 index 000000000..bc7ecb7f8 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG7_filter_condition_index_type_impact.yaml @@ -0,0 +1,95 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL7 Impact of index type on aggregation +#TESTS: +#Aggregate function count with 1 filter condition on non indexed column of bigint datatype +#Aggregate function count with 1 filter condition on pkey column of bigint datatype +#Aggregate function count with 1 filter condition on secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2 ASC); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG7_count_bigint_non_indexed_column_with_filter_condition + customTags: customer=2,schematype=regular,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=nonindexed,filteron=nonindexed,filtertype=comparision + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_1 where col_bigint_id_3>1 + - workload: AGGRG7_count_bigint_pkey_column_with_filter_condition + customTags: customer=2,schematype=regular,partition=range,pkey=asc,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=nonindexed,filteron=rangepkey,filtertype=comparision + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 where col_bigint_id_1>1 + - workload: AGGRG7_count_bigint_secondary_indexed_column_with_filter_condition + customTags: customer=2,schematype=regular,partition=range,skey=asc,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=nonindexed,filteron=rangeskey,filtertype=comparision + run: + - name: yb_count_bigint_non_indexed_column_with_filter_condition + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG8_composite_key_impact.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG8_composite_key_impact.yaml new file mode 100644 index 000000000..791c77e3d --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG8_composite_key_impact.yaml @@ -0,0 +1,200 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL8 Impact of composite constraints +#Aggregate function count on 1st elelemt of composite pkey +#Aggregate function count on 2nd elelemt of composite pkey +#Aggregate function count on 1st elelemt of composite pkey with 1 filter on 1st element +#Aggregate function count on 2nd elelemt of composite pkey with 1 filter on 2nd element +#Aggregate function count on 1st elelemt of composite pkey with 1 filter on 2nd element +#Aggregate function count on 2nd elelemt of composite pkey with 1 filter on 1st element +#Aggregate function count on 1st elelemt of composite secondary key +#Repeat for indexed col +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_comp2keys_1; + - DROP TABLE IF EXISTS Indexed1M_comp2keys_1; + - CREATE TABLE pkeyBigint1M_comp2keys_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_id_2 ASC)); + - CREATE TABLE Indexed1M_comp2keys_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Indexed1M_comp2keys_1(col_bigint_id_2 ASC, col_bigint_id_3 ASC); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_comp2keys_1; + - DROP TABLE IF EXISTS Indexed1M_comp2keys_1; + loadRules: + - table: pkeyBigint1M_comp2keys_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: Indexed1M_comp2keys_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG8_count_bigint_comp_pkey_first_ele + customTags: schematype=regular,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_count_bigint_comp_pkey_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_pkey_second_ele + customTags: schematype=regular,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangepkey + run: + - name: yb_count_bigint_comp_pkey_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_pkey_withfilter_first_ele + customTags: schematype=regular,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: yb_count_bigint_comp_pkey_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 where col_bigint_id_1>1 + - workload: AGGRG8_count_bigint_comp_pkey_withfilter_second_ele + customTags: schematype=regular,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: yb_count_bigint_comp_pkey_withfilter_second_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_pkey_project_first_ele_withfilter_sec_ele + customTags: schematype=regular,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: yb_count_bigint_comp_pkey_project_first_ele_withfilter_sec_ele + weight: 100 + queries: + - query: select count(col_bigint_id_1) from pkeyBigint1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_pkey_project_sec_ele_withfilter_first_ele + customTags: schematype=regular,partition=range,pkey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangepkey,filteron=rangepkey,filtertype=comparision + run: + - name: yb_count_bigint_comp_pkey_project_sec_ele_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from pkeyBigint1M_comp2keys_1 where col_bigint_id_1>1 + + + - workload: AGGRG8_count_bigint_comp_index_first_ele + customTags: schematype=regular,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: yb_count_bigint_comp_index_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_index_second_ele + customTags: schematype=regular,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,aggregateon=rangeskey + run: + - name: yb_count_bigint_comp_index_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 + - workload: AGGRG8_count_bigint_comp_index_withfilter_first_ele + customTags: schematype=regular,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: yb_count_bigint_comp_index_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 where col_bigint_id_2>1 + - workload: AGGRG8_count_bigint_comp_index_withfilter_second_ele + customTags: schematype=regular,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: yb_count_bigint_comp_index_withfilter_second_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 where col_bigint_id_3>1 + - workload: AGGRG8_count_bigint_comp_index_project_first_ele_withfilter_sec_ele + customTags: schematype=regular,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: yb_count_bigint_comp_index_project_first_ele_withfilter_sec_ele + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_comp2keys_1 where col_bigint_id_3>1 + - workload: AGGRG8_count_bigint_comp_index_project_sec_ele_withfilter_first_ele + customTags: schematype=regular,partition=range,skey=composite,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=rangeskey,filteron=rangeskey,filtertype=comparision + run: + - name: yb_count_bigint_comp_index_project_sec_ele_withfilter_first_ele + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_comp2keys_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG9_aggregates_on_hash_partitioned_table.yaml b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG9_aggregates_on_hash_partitioned_table.yaml new file mode 100644 index 000000000..86c21a491 --- /dev/null +++ b/config/yugabyte/regression_pipelines/aggregate_workloads/yugabyte/AGGRG9_aggregates_on_hash_partitioned_table.yaml @@ -0,0 +1,108 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL9 Aggregates on hash partioned tables +#Aggregate function count on non indexed column of bigint datatype +#Aggregate function count on hash pkey column of bigint datatype +#Aggregate function count on hash secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: AGGRG9_count_bigint_non_indexed_column + customTags: schematype=regular,partition=hash,aggregate=count,cardinality=single,projection=aggregate,aggregateon=nonindexed + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_3) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_pkey_column + customTags: schematype=regular,partition=hash,aggregate=count,cardinality=single,projection=aggregate,aggregateon=hashpkey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_pkey_column_with_filter + customTags: schematype=regular,partition=hash,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=hashpkey,filteron=hashpkey,filtertype=comparision + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_1) from Indexed1M_1 where col_bigint_id_1>1 + - workload: AGGRG9_count_bigint_hash_secondary_indexed_column + customTags: schematype=regular,partition=hash,aggregate=count,cardinality=single,projection=aggregate,aggregateon=hashskey + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 + - workload: AGGRG9_count_bigint_hash_secondary_indexed_column_with_filter + customTags: schematype=regular,partition=hash,aggregate=count,cardinality=single,projection=aggregate,filtercount=one,aggregateon=hashskey,filteron=hashskey,filtertype=comparision + run: + - name: count_bigint_non_indexed_column + weight: 100 + queries: + - query: select count(col_bigint_id_2) from Indexed1M_1 where col_bigint_id_2>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/bulkload/300M_rows_pg.yaml b/config/yugabyte/regression_pipelines/bulkload/300M_rows_pg.yaml new file mode 100644 index 000000000..2c18d5274 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/300M_rows_pg.yaml @@ -0,0 +1,26 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.0 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + # Goal3 - 3 :: create table with 15 fields -> load data for 300M rows (only PK) + workload: load_300Mrows + tableName: orders + columns: 15 + rows: 300000000 + filePath: orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/300M_rows_yb.yaml b/config/yugabyte/regression_pipelines/bulkload/300M_rows_yb.yaml new file mode 100644 index 000000000..a12bb1628 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/300M_rows_yb.yaml @@ -0,0 +1,26 @@ + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.0 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + # Goal3 - 3 :: create table with 15 fields -> load data for 300M rows (only PK) + workload: load_300Mrows + tableName: orders + columns: 15 + rows: 300000000 + filePath: orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/300M_rows_yb_colocated.yaml b/config/yugabyte/regression_pipelines/bulkload/300M_rows_yb_colocated.yaml new file mode 100644 index 000000000..3b1a5b49b --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/300M_rows_yb_colocated.yaml @@ -0,0 +1,27 @@ + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.0 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + # Goal3 - 3 :: create table with 15 fields -> load data for 300M rows (only PK) + workload: load_300Mrows + tableName: orders + columns: 15 + rows: 300000000 + filePath: orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/10_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/10_indexes.yaml new file mode 100644 index 000000000..8c1f992eb --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/10_indexes.yaml @@ -0,0 +1,29 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + # Goal 1 - 4 :: create table with PK -> create 10 index -> load data (10 index) + workload: create10index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 10 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/1_index.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/1_index.yaml new file mode 100644 index 000000000..b50bcbd79 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/1_index.yaml @@ -0,0 +1,29 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + # Goal 1 - 2 :: create table with PK -> create 1 index -> load data (1 index) + workload: create1index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/5_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/5_indexes.yaml new file mode 100644 index 000000000..5749f7e27 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/5_indexes.yaml @@ -0,0 +1,29 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + # Goal 1 - 3 :: create table with PK -> create 5 index -> load data (5 index) + workload: create5index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/no_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/no_indexes.yaml new file mode 100644 index 000000000..0efb63d0c --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal1_varying_indexes/no_indexes.yaml @@ -0,0 +1,29 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + # Goal 1 - 1 :: create table with PK -> load data (no index) + workload: noindex_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 0 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal2_index_pre_and_backfilling/1_index_load.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal2_index_pre_and_backfilling/1_index_load.yaml new file mode 100644 index 000000000..ca03a3a60 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal2_index_pre_and_backfilling/1_index_load.yaml @@ -0,0 +1,31 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + # Goal2 - 1 :: create table with PK -> create 1 index -> Load data (1 index) + workload: create_1_index_then_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: true + create_index_after_load: false + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal2_index_pre_and_backfilling/5_index_load.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal2_index_pre_and_backfilling/5_index_load.yaml new file mode 100644 index 000000000..951ea5d6c --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal2_index_pre_and_backfilling/5_index_load.yaml @@ -0,0 +1,30 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + # Goal2 - 3 :: create table with PK -> create 5 index -> Load data (5 index) + workload: create_5_indexes_then_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: true + create_index_after_load: false + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal3_varying_rows/30M_rows.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal3_varying_rows/30M_rows.yaml new file mode 100644 index 000000000..dc1009817 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal3_varying_rows/30M_rows.yaml @@ -0,0 +1,26 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + # Goal3 - 2 :: create table with 15 fields -> load data for 30M rows (only PK) + workload: load_30Mrows + tableName: orders + columns: 15 + rows: 30000000 + filePath: bulkload/goal3/30m_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal3_varying_rows/3M_rows.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal3_varying_rows/3M_rows.yaml new file mode 100644 index 000000000..0afd1b610 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal3_varying_rows/3M_rows.yaml @@ -0,0 +1,26 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + # Goal3 - 1 :: create table with 15 fields -> load data for 3M rows (only PK) + workload: load_3Mrows + tableName: orders + columns: 15 + rows: 3000000 + filePath: bulkload/goal3/3m_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/100_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/100_columns.yaml new file mode 100644 index 000000000..dfddc5be4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/100_columns.yaml @@ -0,0 +1,26 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + # Goal4 - 3 :: create table with 100 fields, 3M rows -> load data (only PK) + workload: create_100fields_table_then_load + tableName: orders + columns: 100 + rows: 3000000 + filePath: bulkload/goal4/100col_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/10_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/10_columns.yaml new file mode 100644 index 000000000..c580341f0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/10_columns.yaml @@ -0,0 +1,26 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + # Goal4 - 1 :: create table with 10 fields, 3M rows -> load data (only PK) + workload: create_10fields_table_then_load + tableName: orders + columns: 10 + rows: 3000000 + filePath: bulkload/goal4/10col_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/20_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/20_columns.yaml new file mode 100644 index 000000000..dd263ca34 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/postgres/goal4_varying_columns/20_columns.yaml @@ -0,0 +1,26 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.1 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + # Goal4 - 2 :: create table with 20 fields, 3M rows -> load data (only PK) + workload: create_20fields_table_then_load + tableName: orders + columns: 20 + rows: 3000000 + filePath: bulkload/goal4/20col_orders.csv + stringLength: 32 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/10_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/10_indexes.yaml new file mode 100644 index 000000000..6e8b978fd --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/10_indexes.yaml @@ -0,0 +1,30 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 4 :: create table with PK -> create 10 index -> load data (10 index) + workload: create10index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 10 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/1_index.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/1_index.yaml new file mode 100644 index 000000000..467e813ef --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/1_index.yaml @@ -0,0 +1,30 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 2 :: create table with PK -> create 1 index -> load data (1 index) + workload: create1index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/5_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/5_indexes.yaml new file mode 100644 index 000000000..fa4ca14c5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/5_indexes.yaml @@ -0,0 +1,30 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 3 :: create table with PK -> create 5 index -> load data (5 index) + workload: create5index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/no_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/no_indexes.yaml new file mode 100644 index 000000000..76ff90ca4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal1_varying_indexes/no_indexes.yaml @@ -0,0 +1,30 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 1 :: create table with PK -> load data (no index) + workload: noindex_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 0 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/1_index_load.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/1_index_load.yaml new file mode 100644 index 000000000..1bf682308 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/1_index_load.yaml @@ -0,0 +1,32 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 1 :: create table with PK -> create 1 index -> Load data (1 index) + workload: create_1_index_then_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: true + create_index_after_load: false + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/5_index_load.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/5_index_load.yaml new file mode 100644 index 000000000..e404867f9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/5_index_load.yaml @@ -0,0 +1,31 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 3 :: create table with PK -> create 5 index -> Load data (5 index) + workload: create_5_indexes_then_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: true + create_index_after_load: false + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/load_backfill_1_index.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/load_backfill_1_index.yaml new file mode 100644 index 000000000..7a159ce1b --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/load_backfill_1_index.yaml @@ -0,0 +1,31 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 2 :: create table with PK -> load data -> create 1 index + workload: load_then_backfill_1_index + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: false + create_index_after_load: true + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/load_backfill_5_index.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/load_backfill_5_index.yaml new file mode 100644 index 000000000..351226756 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal2_index_pre_and_backfilling/load_backfill_5_index.yaml @@ -0,0 +1,31 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 4 :: create table with PK -> load data -> create 5 index + workload: load_then_backfill_5_indexes + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: false + create_index_after_load: true + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal3_varying_rows/30M_rows.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal3_varying_rows/30M_rows.yaml new file mode 100644 index 000000000..ba66fc768 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal3_varying_rows/30M_rows.yaml @@ -0,0 +1,28 @@ + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + setAutoCommit: true + # Goal3 - 2 :: create table with 15 fields -> load data for 30M rows (only PK) + workload: load_30Mrows + tableName: orders + columns: 15 + rows: 30000000 + filePath: bulkload/goal3/30m_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal3_varying_rows/3M_rows.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal3_varying_rows/3M_rows.yaml new file mode 100644 index 000000000..917b64840 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal3_varying_rows/3M_rows.yaml @@ -0,0 +1,27 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + setAutoCommit: true + # Goal3 - 1 :: create table with 15 fields -> load data for 3M rows (only PK) + workload: load_3Mrows + tableName: orders + columns: 15 + rows: 3000000 + filePath: bulkload/goal3/3m_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/100_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/100_columns.yaml new file mode 100644 index 000000000..6b7a5454b --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/100_columns.yaml @@ -0,0 +1,27 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + setAutoCommit: true + # Goal4 - 3 :: create table with 100 fields, 3M rows -> load data (only PK) + workload: create_100fields_table_then_load + tableName: orders + columns: 100 + rows: 3000000 + filePath: bulkload/goal4/100col_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/10_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/10_columns.yaml new file mode 100644 index 000000000..7293c0f67 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/10_columns.yaml @@ -0,0 +1,27 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + setAutoCommit: true + # Goal4 - 1 :: create table with 10 fields, 3M rows -> load data (only PK) + workload: create_10fields_table_then_load + tableName: orders + columns: 10 + rows: 3000000 + filePath: bulkload/goal4/10col_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/20_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/20_columns.yaml new file mode 100644 index 000000000..58abaa716 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yb_colocated/goal4_varying_columns/20_columns.yaml @@ -0,0 +1,27 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + setAutoCommit: true + # Goal4 - 2 :: create table with 20 fields, 3M rows -> load data (only PK) + workload: create_20fields_table_then_load + tableName: orders + columns: 20 + rows: 3000000 + filePath: bulkload/goal4/20col_orders.csv + stringLength: 32 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/10_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/10_indexes.yaml new file mode 100644 index 000000000..1ed840e8e --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/10_indexes.yaml @@ -0,0 +1,29 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 4 :: create table with PK -> create 10 index -> load data (10 index) + workload: create10index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 10 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/1_index.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/1_index.yaml new file mode 100644 index 000000000..4735c0ecb --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/1_index.yaml @@ -0,0 +1,29 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 2 :: create table with PK -> create 1 index -> load data (1 index) + workload: create1index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/5_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/5_indexes.yaml new file mode 100644 index 000000000..cf9f7df46 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/5_indexes.yaml @@ -0,0 +1,29 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 3 :: create table with PK -> create 5 index -> load data (5 index) + workload: create5index_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/no_indexes.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/no_indexes.yaml new file mode 100644 index 000000000..758d33a9f --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal1_varying_indexes/no_indexes.yaml @@ -0,0 +1,29 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal1 + properties: + setAutoCommit: true + # Goal 1 - 1 :: create table with PK -> load data (no index) + workload: noindex_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 0 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/1_index_load.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/1_index_load.yaml new file mode 100644 index 000000000..940848b93 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/1_index_load.yaml @@ -0,0 +1,31 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true + +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 1 :: create table with PK -> create 1 index -> Load data (1 index) + workload: create_1_index_then_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: true + create_index_after_load: false + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/5_index_load.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/5_index_load.yaml new file mode 100644 index 000000000..d16f19f14 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/5_index_load.yaml @@ -0,0 +1,30 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 3 :: create table with PK -> create 5 index -> Load data (5 index) + workload: create_5_indexes_then_load + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: true + create_index_after_load: false + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/load_backfill_1_index.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/load_backfill_1_index.yaml new file mode 100644 index 000000000..b30ea3fd6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/load_backfill_1_index.yaml @@ -0,0 +1,30 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 2 :: create table with PK -> load data -> create 1 index + workload: load_then_backfill_1_index + tableName: orders + columns: 15 + rows: 3000000 + indexes: 1 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: false + create_index_after_load: true + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/load_backfill_5_index.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/load_backfill_5_index.yaml new file mode 100644 index 000000000..5b1015d79 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal2_index_pre_and_backfilling/load_backfill_5_index.yaml @@ -0,0 +1,30 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal2 + properties: + setAutoCommit: true + # Goal2 - 4 :: create table with PK -> load data -> create 5 index + workload: load_then_backfill_5_indexes + tableName: orders + columns: 15 + rows: 3000000 + indexes: 5 + filePath: bulkload/goal1_2/orders.csv + stringLength: 32 + create_index_before_load: false + create_index_after_load: true + recreateCsvIfExists: false diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal3_varying_rows/30M_rows.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal3_varying_rows/30M_rows.yaml new file mode 100644 index 000000000..bfcef38a2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal3_varying_rows/30M_rows.yaml @@ -0,0 +1,27 @@ + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + setAutoCommit: true + # Goal3 - 2 :: create table with 15 fields -> load data for 30M rows (only PK) + workload: load_30Mrows + tableName: orders + columns: 15 + rows: 30000000 + filePath: bulkload/goal3/30m_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal3_varying_rows/3M_rows.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal3_varying_rows/3M_rows.yaml new file mode 100644 index 000000000..e8f523ab9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal3_varying_rows/3M_rows.yaml @@ -0,0 +1,26 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal3 + properties: + setAutoCommit: true + # Goal3 - 1 :: create table with 15 fields -> load data for 3M rows (only PK) + workload: load_3Mrows + tableName: orders + columns: 15 + rows: 3000000 + filePath: bulkload/goal3/3m_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/100_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/100_columns.yaml new file mode 100644 index 000000000..67cf16a32 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/100_columns.yaml @@ -0,0 +1,26 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + setAutoCommit: true + # Goal4 - 3 :: create table with 100 fields, 3M rows -> load data (only PK) + workload: create_100fields_table_then_load + tableName: orders + columns: 100 + rows: 3000000 + filePath: bulkload/goal4/100col_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/10_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/10_columns.yaml new file mode 100644 index 000000000..13509d364 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/10_columns.yaml @@ -0,0 +1,26 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + setAutoCommit: true + # Goal4 - 1 :: create table with 10 fields, 3M rows -> load data (only PK) + workload: create_10fields_table_then_load + tableName: orders + columns: 10 + rows: 3000000 + filePath: bulkload/goal4/10col_orders.csv + stringLength: 32 diff --git a/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/20_columns.yaml b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/20_columns.yaml new file mode 100644 index 000000000..01847efb9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/bulkload/yugabyte/goal4_varying_columns/20_columns.yaml @@ -0,0 +1,26 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +collect_pg_stat_statements: false +loaderthreads: 1 +terminals: 1 +yaml_version: v1.2 +works: + work: + rate: unlimited + serial: true +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.Goal4 + properties: + setAutoCommit: true + # Goal4 - 2 :: create table with 20 fields, 3M rows -> load data (only PK) + workload: create_20fields_table_then_load + tableName: orders + columns: 20 + rows: 3000000 + filePath: bulkload/goal4/20col_orders.csv + stringLength: 32 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW1_on_conflict_do_nothing.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW1_on_conflict_do_nothing.yaml new file mode 100644 index 000000000..29541f4f5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW1_on_conflict_do_nothing.yaml @@ -0,0 +1,242 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS accounts_1; + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts_1 ON accounts_1( user_id_1, account_id_1); + - CREATE UNIQUE INDEX user_accounts_2 ON accounts_1( user_id_1, account_id_1, addr_1, bal_1); + + cleanup: + - DROP TABLE IF EXISTS accounts_1; + + loadRules: + - table: accounts_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 1000000, 2 ] + + executeRules: + - workload: CW1_1_2column_condition_no_conflict_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 5000000, 2 ] + + + - workload: CW1_2_4column_condition_no_conflict_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 5000001, 10000000 ] + - util: PrimaryIntGen + params: [ 5000001, 10000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 5000001, 10000000, 2 ] + + - workload: CW1_3_2column_condition_no_conflict_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 10000000, 15000000 ] + - util: PrimaryIntGen + params: [ 10000000, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 10000000, 15000000, 2 ] + + - workload: CW1_4_2column_condition_no_conflict_so_2048_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING + count: 2048 + bindings: + - util: PrimaryIntGen + params: [ 15000000, 20000000 ] + - util: PrimaryIntGen + params: [ 15000000, 20000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 15000000, 20000000, 2 ] + + - workload: CW1_5_2column_condition_no_conflict_so_10_insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 20000001, 25000000 ] + - util: PrimaryIntGen + params: [ 20000001, 25000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 20000001, 25000000, 2 ] + + - workload: CW1_6_4column_condition_no_conflict_so_10_insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 25000001, 30000000 ] + - util: PrimaryIntGen + params: [ 25000001, 30000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 25000001, 30000000, 2 ] + + - workload: CW1_7_2column_condition_no_conflict_so_10values_in_1insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 30000001, 35000000 ] + - util: PrimaryIntGen + params: [ 30000001, 35000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 30000001, 35000000, 2 ] + - util: PrimaryIntGen + params: [ 35000001, 40000000 ] + - util: PrimaryIntGen + params: [ 35000001, 40000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 35000001, 40000000, 2 ] + - util: PrimaryIntGen + params: [ 40000001, 45000000 ] + - util: PrimaryIntGen + params: [ 40000001, 45000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 40000001, 45000000, 2 ] + - util: PrimaryIntGen + params: [ 45000001, 50000000 ] + - util: PrimaryIntGen + params: [ 45000001, 50000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 45000001, 50000000, 2 ] + - util: PrimaryIntGen + params: [ 50000001, 55000000 ] + - util: PrimaryIntGen + params: [ 50000001, 55000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 50000001, 55000000, 2 ] + - util: PrimaryIntGen + params: [ 55000001, 60000000 ] + - util: PrimaryIntGen + params: [ 55000001, 60000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 55000001, 60000000, 2 ] + - util: PrimaryIntGen + params: [ 60000001, 65000000 ] + - util: PrimaryIntGen + params: [ 60000001, 65000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 60000001, 65000000, 2 ] + - util: PrimaryIntGen + params: [ 65000001, 70000000 ] + - util: PrimaryIntGen + params: [ 65000001, 70000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 65000001, 70000000, 2 ] + - util: PrimaryIntGen + params: [ 70000001, 75000000 ] + - util: PrimaryIntGen + params: [ 70000001, 75000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 70000001, 75000000, 2 ] + - util: PrimaryIntGen + params: [ 75000001, 80000000 ] + - util: PrimaryIntGen + params: [ 75000001, 80000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 75000001, 80000000, 2 ] + + + diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW2_on_conflict_do_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW2_on_conflict_do_update.yaml new file mode 100644 index 000000000..f0cbcae50 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW2_on_conflict_do_update.yaml @@ -0,0 +1,272 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS accounts_1; + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 bigint,PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts_1 ON accounts_1( user_id_1, account_id_1); + - CREATE UNIQUE INDEX user_accounts_2 ON accounts_1( user_id_1, account_id_1, addr_1, bal_1); + + cleanup: + - DROP TABLE IF EXISTS accounts_1; + + loadRules: + - table: accounts_ + count: 1 + rows: 6000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + - name: addr_ + count: 1 + util: OneStringFromArray + params: [ "addr for the client" ] + - name: bal_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + + executeRules: + - workload: CW2_1_2column_condition_single_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 1, 1000000] + + + - workload: CW2_2_4column_condition_single_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 1000001, 2000000] + + - workload: CW2_3_2column_condition_1024_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 2000001, 3000000 ] + - util: PrimaryIntGen + params: [ 2000001, 3000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 2000001, 3000000] + + - workload: CW2_4_2column_condition_2048_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + count: 2048 + bindings: + - util: PrimaryIntGen + params: [ 3000001, 4000000 ] + - util: PrimaryIntGen + params: [ 3000001, 4000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 3000001, 4000000] + + - workload: CW2_5_2column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 4000001, 5000000 ] + - util: PrimaryIntGen + params: [ 4000001, 5000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 4000001, 5000000] + + - workload: CW2_6_4column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 5000001, 6000000 ] + - util: PrimaryIntGen + params: [ 5000001, 6000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 5000001, 6000000] + + - workload: CW2_7_2column_condition_10values_in_1upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: CyclicSeqIntGen + params: [ 1, 500000 ] + - util: CyclicSeqIntGen + params: [ 1, 500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 1, 500000] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + + - workload: CW2_8_2column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET bal_1=accounts_1.bal_1+1 RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 6000001, 7000000 ] + - util: PrimaryIntGen + params: [ 6000001, 7000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 6000001, 7000000] + + - workload: CW2_9_2column_condition_10_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET bal_1=accounts_1.bal_1+1 RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 7000001, 8000000 ] + - util: PrimaryIntGen + params: [ 7000001, 8000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 7000001, 8000000] diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW3_select_for_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW3_select_for_update.yaml new file mode 100644 index 000000000..ca2ae43ed --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW3_select_for_update.yaml @@ -0,0 +1,146 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW3_transactions_1; + - DROP TABLE IF EXISTS CW3_accounts_1; + - DROP TABLE IF EXISTS CW3_accounts_2; + + - CREATE TABLE IF NOT EXISTS CW3_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_CW3_accounts_1 ON CW3_accounts_1( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS CW3_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_CW3_accounts_2 ON CW3_accounts_2( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS CW3_transactions_1(tran_id_1 bigint PRIMARY KEY, account_id_1 bigint, amount_1 bigint, FOREIGN KEY(account_id_1) REFERENCES CW3_accounts_1(account_id_1) ON DELETE CASCADE ON UPDATE CASCADE) + + cleanup: + - DROP TABLE IF EXISTS CW3_accounts_1; + - DROP TABLE IF EXISTS CW3_transactions_1; + - DROP TABLE IF EXISTS CW3_accounts_2; + + loadRules: + - table: CW3_accounts_ + count: 2 + rows: 2000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 2000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 2000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 2000000, 2 ] + + # Entries are only available for transaction done by accounts from 1-10000 of table CW3_accounts_1. So relevant queries should only use that range. + - table: CW3_transactions_ + count: 1 + rows: 1000000 + columns: + - name: tran_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: account_id_ + count: 1 + util: RandomInt + params: [ 1, 10000 ] + - name: amount_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + + executeRules: + - workload: CW3_1_select_baseline + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_1 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_2_update_baseline + run: + - name: statement1_insert + weight: 100 + queries: + - query: UPDATE CW3_accounts_1 SET bal_1=bal_1+1 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) returning bal_1 + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_3_select_for_update + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_4_select_for_update_nowait + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update NOWAIT + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_5_select_for_update_skip_lock + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update SKIP LOCKED + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_6_select_for_update_with_join + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT * from CW3_accounts_1 a JOIN CW3_transactions_1 t on a.account_id_1 = t.account_id_1 where t.amount_1 > 0 for update; + + + - workload: CW3_7_select_for_update_with_CTE + run: + - name: statement1_insert + weight: 100 + queries: + - query: With high_value_transactions As (SELECT * from CW3_transactions_1 where amount_1>49 for update) UPDATE CW3_transactions_1 set amount_1=amount_1+1 WHERE tran_id_1 IN (Select tran_id_1 from high_value_transactions) diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW4_on_conflict_do_nothing.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW4_on_conflict_do_nothing.yaml new file mode 100644 index 000000000..17f34257a --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW4_on_conflict_do_nothing.yaml @@ -0,0 +1,292 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW4_accounts_1; + - CREATE TABLE IF NOT EXISTS CW4_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX CW4_user_accounts_1 ON CW4_accounts_1(account_id_1, user_id_1); + + - DROP TABLE IF EXISTS CW4_accounts_2; + - CREATE TABLE IF NOT EXISTS CW4_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY HASH (account_id_1); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_0 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 0); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_1 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 1); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_2 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 2); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_3 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 3); + + + - DROP TABLE IF EXISTS CW4_cardinality_tbl1_1 + - CREATE TABLE CW4_cardinality_tbl1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_2) INCLUDE (col_bigint_card3_1) # update multiple(1000) rows with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_3) INCLUDE (col_bigint_id_2) # update all(1M) rows with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_4) INCLUDE (col_int_id_4) # update single column + 1 row with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4) # update single column + 1M row + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_2); + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_3); + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_4); + + cleanup: + - DROP TABLE IF EXISTS CW4_accounts_1; + - DROP TABLE IF EXISTS CW4_accounts_2; + - DROP TABLE IF EXISTS CW4_cardinality_tbl1_1; + + loadRules: + - table: CW4_accounts_ + count: 2 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 1000000, 2 ] + + - table: CW4_cardinality_tbl1_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: CW4_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 5000000, 2 ] + + - workload: CW4_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 5000001, 15000000 ] + - util: PrimaryIntGen + params: [ 5000001, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 5000001, 15000000, 2 ] + + - workload: CW4_3_no_condition_for_on_conflict_1row + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_cardinality_tbl1_1(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_id_4, col_bigint_id_5, col_bigint_id_6, col_int_id_1, col_int_id_2, col_int_id_3, col_int_id_4, col_int_card1_1, col_int_card1_2, col_int_card1_3, col_int_card1_4, col_varchar500_id_1) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT DO NOTHING + bindings: + - util: OneNumberFromArray + params: [ 1000000 ] + - util: RandomInt + params: [ 1000000,1001000 ] + - util: RandomInt + params: [ 1000000,1010000] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: PrimaryStringGen + params: [1, 500] + + - workload: CW4_4_no_condition_for_on_conflict_1024row + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_cardinality_tbl1_1(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_id_4, col_bigint_id_5, col_bigint_id_6, col_int_id_1, col_int_id_2, col_int_id_3, col_int_id_4, col_int_card1_1, col_int_card1_2, col_int_card1_3, col_int_card1_4, col_varchar500_id_1) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT DO NOTHING + count: 1024 + bindings: + - util: OneNumberFromArray + params: [ 1000000 ] + - util: RandomInt + params: [ 1000000,1001000 ] + - util: RandomInt + params: [ 1000000,1010000] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: PrimaryStringGen + params: [1, 500] + + - workload: CW4_5_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 10000000 ] + - util: PrimaryIntGen + params: [ 1000001, 10000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 10000000, 2 ] + + - workload: CW4_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 10000001, 30000000 ] + - util: PrimaryIntGen + params: [ 10000001, 30000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 10000001, 30000000, 2 ] + + - workload: CW4_7_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO NOTHING + pattern_count: 1024 + bindings: + - util: RandomNumber + params: [ 15000001, 25000000 ] + - util: RandomNumber + params: [ 15000001, 25000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 15000001, 25000000, 2 ] + + - workload: CW4_8_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO NOTHING + pattern_count: 1024 + bindings: + - util: RandomNumber + params: [ 30000001, 50000000 ] + - util: RandomNumber + params: [ 30000001, 50000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 30000001, 50000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW5_on_conflict_do_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW5_on_conflict_do_update.yaml new file mode 100644 index 000000000..918c3447c --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW5_on_conflict_do_update.yaml @@ -0,0 +1,160 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW5_accounts_1; + - CREATE TABLE IF NOT EXISTS CW5_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX CW5_user_accounts_1 ON CW5_accounts_1(account_id_1, user_id_1); + + - DROP TABLE IF EXISTS CW5_accounts_2; + - CREATE TABLE IF NOT EXISTS CW5_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY HASH (account_id_1); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_0 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 0); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_1 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 1); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_2 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 2); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_3 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 3); + + cleanup: + - DROP TABLE IF EXISTS CW5_accounts_1; + - DROP TABLE IF EXISTS CW5_accounts_2; + + loadRules: + - table: CW5_accounts_ + count: 2 + rows: 15000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 15000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 15000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + executeRules: + - workload: CW5_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 4000000 ] + - util: PrimaryIntGen + params: [ 1, 4000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 4000000, 2 ] + + - workload: CW5_3_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_4_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_5_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] + + + - workload: CW5_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + time_secs: 120 + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW6_on_conflict_do_update_range.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW6_on_conflict_do_update_range.yaml new file mode 100644 index 000000000..a536799bb --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/postgres/CW6_on_conflict_do_update_range.yaml @@ -0,0 +1,161 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW6_accounts_1; + - CREATE TABLE IF NOT EXISTS CW6_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX CW6_user_accounts_1 ON CW6_accounts_1(account_id_1, user_id_1); + + - DROP TABLE IF EXISTS CW6_accounts_2; + - CREATE TABLE IF NOT EXISTS CW6_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY RANGE (account_id_1); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_0 PARTITION OF CW6_accounts_2 FOR VALUES FROM (1) TO (10000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_1 PARTITION OF CW6_accounts_2 FOR VALUES FROM (10000000) TO (20000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_2 PARTITION OF CW6_accounts_2 FOR VALUES FROM (20000000) TO (30000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_3 PARTITION OF CW6_accounts_2 FOR VALUES FROM (30000000) TO (40000001); + cleanup: + - DROP TABLE IF EXISTS CW6_accounts_1; + - DROP TABLE IF EXISTS CW6_accounts_2; + + loadRules: + - table: CW6_accounts_ + count: 2 + rows: 40000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 40000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 40000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 40000000, 2 ] + + executeRules: + - workload: CW6_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_3_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_4_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + + + - workload: CW6_5_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] + + + - workload: CW6_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_range + time_secs: 60 + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 40000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW1_on_conflict_do_nothing.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW1_on_conflict_do_nothing.yaml new file mode 100644 index 000000000..4a8e15724 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW1_on_conflict_do_nothing.yaml @@ -0,0 +1,243 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS accounts_1; + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts_1 ON accounts_1( user_id_1, account_id_1); + - CREATE UNIQUE INDEX user_accounts_2 ON accounts_1( user_id_1, account_id_1, addr_1, bal_1); + + cleanup: + - DROP TABLE IF EXISTS accounts_1; + + loadRules: + - table: accounts_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 1000000, 2 ] + + executeRules: + - workload: CW1_1_2column_condition_no_conflict_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 5000000, 2 ] + + + - workload: CW1_2_4column_condition_no_conflict_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 5000001, 10000000 ] + - util: PrimaryIntGen + params: [ 5000001, 10000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 5000001, 10000000, 2 ] + + - workload: CW1_3_2column_condition_no_conflict_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 10000000, 15000000 ] + - util: PrimaryIntGen + params: [ 10000000, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 10000000, 15000000, 2 ] + + - workload: CW1_4_2column_condition_no_conflict_so_2048_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING + count: 2048 + bindings: + - util: PrimaryIntGen + params: [ 15000000, 20000000 ] + - util: PrimaryIntGen + params: [ 15000000, 20000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 15000000, 20000000, 2 ] + + - workload: CW1_5_2column_condition_no_conflict_so_10_insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 20000001, 25000000 ] + - util: PrimaryIntGen + params: [ 20000001, 25000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 20000001, 25000000, 2 ] + + - workload: CW1_6_4column_condition_no_conflict_so_10_insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 25000001, 30000000 ] + - util: PrimaryIntGen + params: [ 25000001, 30000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 25000001, 30000000, 2 ] + + - workload: CW1_7_2column_condition_no_conflict_so_10values_in_1insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 30000001, 35000000 ] + - util: PrimaryIntGen + params: [ 30000001, 35000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 30000001, 35000000, 2 ] + - util: PrimaryIntGen + params: [ 35000001, 40000000 ] + - util: PrimaryIntGen + params: [ 35000001, 40000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 35000001, 40000000, 2 ] + - util: PrimaryIntGen + params: [ 40000001, 45000000 ] + - util: PrimaryIntGen + params: [ 40000001, 45000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 40000001, 45000000, 2 ] + - util: PrimaryIntGen + params: [ 45000001, 50000000 ] + - util: PrimaryIntGen + params: [ 45000001, 50000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 45000001, 50000000, 2 ] + - util: PrimaryIntGen + params: [ 50000001, 55000000 ] + - util: PrimaryIntGen + params: [ 50000001, 55000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 50000001, 55000000, 2 ] + - util: PrimaryIntGen + params: [ 55000001, 60000000 ] + - util: PrimaryIntGen + params: [ 55000001, 60000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 55000001, 60000000, 2 ] + - util: PrimaryIntGen + params: [ 60000001, 65000000 ] + - util: PrimaryIntGen + params: [ 60000001, 65000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 60000001, 65000000, 2 ] + - util: PrimaryIntGen + params: [ 65000001, 70000000 ] + - util: PrimaryIntGen + params: [ 65000001, 70000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 65000001, 70000000, 2 ] + - util: PrimaryIntGen + params: [ 70000001, 75000000 ] + - util: PrimaryIntGen + params: [ 70000001, 75000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 70000001, 75000000, 2 ] + - util: PrimaryIntGen + params: [ 75000001, 80000000 ] + - util: PrimaryIntGen + params: [ 75000001, 80000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 75000001, 80000000, 2 ] + + diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW2_on_conflict_do_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW2_on_conflict_do_update.yaml new file mode 100644 index 000000000..541e83eed --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW2_on_conflict_do_update.yaml @@ -0,0 +1,274 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS accounts_1; + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 bigint,PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts_1 ON accounts_1( user_id_1, account_id_1); + - CREATE UNIQUE INDEX user_accounts_2 ON accounts_1( user_id_1, account_id_1, addr_1, bal_1); + + cleanup: + - DROP TABLE IF EXISTS accounts_1; + + loadRules: + - table: accounts_ + count: 1 + rows: 6000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + - name: addr_ + count: 1 + util: OneStringFromArray + params: [ "addr for the client" ] + - name: bal_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + + executeRules: + - workload: CW2_1_2column_condition_single_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 1, 1000000] + + + - workload: CW2_2_4column_condition_single_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 1000001, 2000000] + + - workload: CW2_3_2column_condition_1024_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 2000001, 3000000 ] + - util: PrimaryIntGen + params: [ 2000001, 3000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 2000001, 3000000] + + - workload: CW2_4_2column_condition_2048_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + count: 2048 + bindings: + - util: PrimaryIntGen + params: [ 3000001, 4000000 ] + - util: PrimaryIntGen + params: [ 3000001, 4000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 3000001, 4000000] + + - workload: CW2_5_2column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 4000001, 5000000 ] + - util: PrimaryIntGen + params: [ 4000001, 5000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 4000001, 5000000] + + - workload: CW2_6_4column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 5000001, 6000000 ] + - util: PrimaryIntGen + params: [ 5000001, 6000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 5000001, 6000000] + + - workload: CW2_7_2column_condition_10values_in_1upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: CyclicSeqIntGen + params: [ 1, 500000 ] + - util: CyclicSeqIntGen + params: [ 1, 500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 1, 500000] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + + - workload: CW2_8_2column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET bal_1=accounts_1.bal_1+1 RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 6000001, 7000000 ] + - util: PrimaryIntGen + params: [ 6000001, 7000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 6000001, 7000000] + + - workload: CW2_9_2column_condition_10_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET bal_1=accounts_1.bal_1+1 RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 7000001, 8000000 ] + - util: PrimaryIntGen + params: [ 7000001, 8000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 7000001, 8000000] diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW3_select_for_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW3_select_for_update.yaml new file mode 100644 index 000000000..31a08f985 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW3_select_for_update.yaml @@ -0,0 +1,148 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW3_transactions_1; + - DROP TABLE IF EXISTS CW3_accounts_1; + - DROP TABLE IF EXISTS CW3_accounts_2; + + - CREATE TABLE IF NOT EXISTS CW3_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_CW3_accounts_1 ON CW3_accounts_1( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS CW3_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_CW3_accounts_2 ON CW3_accounts_2( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS CW3_transactions_1(tran_id_1 bigint PRIMARY KEY, account_id_1 bigint, amount_1 bigint, FOREIGN KEY(account_id_1) REFERENCES CW3_accounts_1(account_id_1) ON DELETE CASCADE ON UPDATE CASCADE) + + cleanup: + - DROP TABLE IF EXISTS CW3_accounts_1; + - DROP TABLE IF EXISTS CW3_transactions_1; + - DROP TABLE IF EXISTS CW3_accounts_2; + + loadRules: + - table: CW3_accounts_ + count: 2 + rows: 2000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 2000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 2000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 2000000, 2 ] + + # Entries are only available for transaction done by accounts from 1-10000 of table CW3_accounts_1. So relevant queries should only use that range. + - table: CW3_transactions_ + count: 1 + rows: 1000000 + columns: + - name: tran_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: account_id_ + count: 1 + util: RandomInt + params: [ 1, 10000 ] + - name: amount_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + + executeRules: + - workload: CW3_1_select_baseline + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_1 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_2_update_baseline + run: + - name: statement1_insert + weight: 100 + queries: + - query: UPDATE CW3_accounts_1 SET bal_1=bal_1+1 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) returning bal_1 + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_3_select_for_update + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_4_select_for_update_nowait + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update NOWAIT + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_5_select_for_update_skip_lock + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update SKIP LOCKED + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_6_select_for_update_with_join + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT * from CW3_accounts_1 a JOIN CW3_transactions_1 t on a.account_id_1 = t.account_id_1 where t.amount_1 > 0 for update; + + + - workload: CW3_7_select_for_update_with_CTE + run: + - name: statement1_insert + weight: 100 + queries: + - query: With high_value_transactions As (SELECT * from CW3_transactions_1 where amount_1>49 for update) UPDATE CW3_transactions_1 set amount_1=amount_1+1 WHERE tran_id_1 IN (Select tran_id_1 from high_value_transactions) diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW4_on_conflict_do_nothing.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW4_on_conflict_do_nothing.yaml new file mode 100644 index 000000000..e993a3084 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW4_on_conflict_do_nothing.yaml @@ -0,0 +1,294 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW4_accounts_1; + - CREATE TABLE IF NOT EXISTS CW4_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX CW4_user_accounts_1 ON CW4_accounts_1(account_id_1, user_id_1); + + - DROP TABLE IF EXISTS CW4_accounts_2; + - CREATE TABLE IF NOT EXISTS CW4_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY HASH (account_id_1); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_0 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 0); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_1 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 1); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_2 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 2); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_3 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 3); + + + - DROP TABLE IF EXISTS CW4_cardinality_tbl1_1 + - CREATE TABLE CW4_cardinality_tbl1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_2) INCLUDE (col_bigint_card3_1) # update multiple(1000) rows with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_3) INCLUDE (col_bigint_id_2) # update all(1M) rows with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_4) INCLUDE (col_int_id_4) # update single column + 1 row with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4) # update single column + 1M row + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_2); + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_3); + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_4); + + cleanup: + - DROP TABLE IF EXISTS CW4_accounts_1; + - DROP TABLE IF EXISTS CW4_accounts_2; + - DROP TABLE IF EXISTS CW4_cardinality_tbl1_1; + + loadRules: + - table: CW4_accounts_ + count: 2 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 1000000, 2 ] + + - table: CW4_cardinality_tbl1_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: CW4_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 5000000, 2 ] + + - workload: CW4_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 5000001, 15000000 ] + - util: PrimaryIntGen + params: [ 5000001, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 5000001, 15000000, 2 ] + + - workload: CW4_3_no_condition_for_on_conflict_1row + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_cardinality_tbl1_1(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_id_4, col_bigint_id_5, col_bigint_id_6, col_int_id_1, col_int_id_2, col_int_id_3, col_int_id_4, col_int_card1_1, col_int_card1_2, col_int_card1_3, col_int_card1_4, col_varchar500_id_1) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT DO NOTHING + bindings: + - util: OneNumberFromArray + params: [ 1000000 ] + - util: RandomInt + params: [ 1000000,1001000 ] + - util: RandomInt + params: [ 1000000,1010000] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: PrimaryStringGen + params: [1, 500] + + - workload: CW4_4_no_condition_for_on_conflict_1024row + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_cardinality_tbl1_1(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_id_4, col_bigint_id_5, col_bigint_id_6, col_int_id_1, col_int_id_2, col_int_id_3, col_int_id_4, col_int_card1_1, col_int_card1_2, col_int_card1_3, col_int_card1_4, col_varchar500_id_1) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT DO NOTHING + count: 1024 + bindings: + - util: OneNumberFromArray + params: [ 1000000 ] + - util: RandomInt + params: [ 1000000,1001000 ] + - util: RandomInt + params: [ 1000000,1010000] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: PrimaryStringGen + params: [1, 500] + + - workload: CW4_5_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 10000000 ] + - util: PrimaryIntGen + params: [ 1000001, 10000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 10000000, 2 ] + + - workload: CW4_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 10000001, 30000000 ] + - util: PrimaryIntGen + params: [ 10000001, 30000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 10000001, 30000000, 2 ] + + - workload: CW4_7_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO NOTHING + pattern_count: 1024 + bindings: + - util: RandomNumber + params: [ 15000001, 25000000 ] + - util: RandomNumber + params: [ 15000001, 25000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 15000001, 25000000, 2 ] + + - workload: CW4_8_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO NOTHING + pattern_count: 1024 + bindings: + - util: RandomNumber + params: [ 30000001, 50000000 ] + - util: RandomNumber + params: [ 30000001, 50000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 30000001, 50000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW5_on_conflict_do_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW5_on_conflict_do_update.yaml new file mode 100644 index 000000000..701b4243f --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW5_on_conflict_do_update.yaml @@ -0,0 +1,161 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW5_accounts_1; + - CREATE TABLE IF NOT EXISTS CW5_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX CW5_user_accounts_1 ON CW5_accounts_1(account_id_1, user_id_1); + + - DROP TABLE IF EXISTS CW5_accounts_2; + - CREATE TABLE IF NOT EXISTS CW5_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY HASH (account_id_1); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_0 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 0); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_1 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 1); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_2 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 2); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_3 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 3); + + cleanup: + - DROP TABLE IF EXISTS CW5_accounts_1; + - DROP TABLE IF EXISTS CW5_accounts_2; + + loadRules: + - table: CW5_accounts_ + count: 2 + rows: 15000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 15000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 15000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + executeRules: + - workload: CW5_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 4000000 ] + - util: PrimaryIntGen + params: [ 1, 4000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 4000000, 2 ] + + - workload: CW5_3_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_4_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_5_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] + + + - workload: CW5_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW6_on_conflict_do_update_range.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW6_on_conflict_do_update_range.yaml new file mode 100644 index 000000000..d24845082 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yb_colocated/CW6_on_conflict_do_update_range.yaml @@ -0,0 +1,162 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW6_accounts_1; + - CREATE TABLE IF NOT EXISTS CW6_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1 ASC)); + - CREATE UNIQUE INDEX CW6_user_accounts_1 ON CW6_accounts_1(account_id_1 ASC, user_id_1 ASC); + + - DROP TABLE IF EXISTS CW6_accounts_2; + - CREATE TABLE IF NOT EXISTS CW6_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY RANGE (account_id_1); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_0 PARTITION OF CW6_accounts_2 FOR VALUES FROM (1) TO (10000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_1 PARTITION OF CW6_accounts_2 FOR VALUES FROM (10000000) TO (20000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_2 PARTITION OF CW6_accounts_2 FOR VALUES FROM (20000000) TO (30000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_3 PARTITION OF CW6_accounts_2 FOR VALUES FROM (30000000) TO (40000001); + cleanup: + - DROP TABLE IF EXISTS CW6_accounts_1; + - DROP TABLE IF EXISTS CW6_accounts_2; + + loadRules: + - table: CW6_accounts_ + count: 2 + rows: 40000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 40000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 40000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 40000000, 2 ] + + executeRules: + - workload: CW6_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_3_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_4_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + + + - workload: CW6_5_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] + + + - workload: CW6_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 40000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW1_on_conflict_do_nothing.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW1_on_conflict_do_nothing.yaml new file mode 100644 index 000000000..ff3b98e71 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW1_on_conflict_do_nothing.yaml @@ -0,0 +1,242 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS accounts_1; + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts_1 ON accounts_1( user_id_1, account_id_1); + - CREATE UNIQUE INDEX user_accounts_2 ON accounts_1( user_id_1, account_id_1, addr_1, bal_1); + + cleanup: + - DROP TABLE IF EXISTS accounts_1; + + loadRules: + - table: accounts_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 1000000, 2 ] + + executeRules: + - workload: CW1_1_2column_condition_no_conflict_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 5000000, 2 ] + + + - workload: CW1_2_4column_condition_no_conflict_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 5000001, 10000000 ] + - util: PrimaryIntGen + params: [ 5000001, 10000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 5000001, 10000000, 2 ] + + - workload: CW1_3_2column_condition_no_conflict_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 10000000, 15000000 ] + - util: PrimaryIntGen + params: [ 10000000, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 10000000, 15000000, 2 ] + + - workload: CW1_4_2column_condition_no_conflict_so_2048_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING + count: 2048 + bindings: + - util: PrimaryIntGen + params: [ 15000000, 20000000 ] + - util: PrimaryIntGen + params: [ 15000000, 20000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 15000000, 20000000, 2 ] + + - workload: CW1_5_2column_condition_no_conflict_so_10_insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 20000001, 25000000 ] + - util: PrimaryIntGen + params: [ 20000001, 25000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 20000001, 25000000, 2 ] + + - workload: CW1_6_4column_condition_no_conflict_so_10_insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO NOTHING RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 25000001, 30000000 ] + - util: PrimaryIntGen + params: [ 25000001, 30000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 25000001, 30000000, 2 ] + + - workload: CW1_7_2column_condition_no_conflict_so_10values_in_1insert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 30000001, 35000000 ] + - util: PrimaryIntGen + params: [ 30000001, 35000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 30000001, 35000000, 2 ] + - util: PrimaryIntGen + params: [ 35000001, 40000000 ] + - util: PrimaryIntGen + params: [ 35000001, 40000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 35000001, 40000000, 2 ] + - util: PrimaryIntGen + params: [ 40000001, 45000000 ] + - util: PrimaryIntGen + params: [ 40000001, 45000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 40000001, 45000000, 2 ] + - util: PrimaryIntGen + params: [ 45000001, 50000000 ] + - util: PrimaryIntGen + params: [ 45000001, 50000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 45000001, 50000000, 2 ] + - util: PrimaryIntGen + params: [ 50000001, 55000000 ] + - util: PrimaryIntGen + params: [ 50000001, 55000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 50000001, 55000000, 2 ] + - util: PrimaryIntGen + params: [ 55000001, 60000000 ] + - util: PrimaryIntGen + params: [ 55000001, 60000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 55000001, 60000000, 2 ] + - util: PrimaryIntGen + params: [ 60000001, 65000000 ] + - util: PrimaryIntGen + params: [ 60000001, 65000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 60000001, 65000000, 2 ] + - util: PrimaryIntGen + params: [ 65000001, 70000000 ] + - util: PrimaryIntGen + params: [ 65000001, 70000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 65000001, 70000000, 2 ] + - util: PrimaryIntGen + params: [ 70000001, 75000000 ] + - util: PrimaryIntGen + params: [ 70000001, 75000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 70000001, 75000000, 2 ] + - util: PrimaryIntGen + params: [ 75000001, 80000000 ] + - util: PrimaryIntGen + params: [ 75000001, 80000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 75000001, 80000000, 2 ] + + diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW2_on_conflict_do_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW2_on_conflict_do_update.yaml new file mode 100644 index 000000000..d97ae599b --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW2_on_conflict_do_update.yaml @@ -0,0 +1,273 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS accounts_1; + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 bigint,PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts_1 ON accounts_1( user_id_1, account_id_1); + - CREATE UNIQUE INDEX user_accounts_2 ON accounts_1( user_id_1, account_id_1, addr_1, bal_1); + + cleanup: + - DROP TABLE IF EXISTS accounts_1; + + loadRules: + - table: accounts_ + count: 1 + rows: 6000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + - name: addr_ + count: 1 + util: OneStringFromArray + params: [ "addr for the client" ] + - name: bal_ + count: 1 + util: PrimaryIntGen + params: [ 1, 6000000 ] + + executeRules: + - workload: CW2_1_2column_condition_single_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 1, 1000000] + + + - workload: CW2_2_4column_condition_single_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 1000001, 2000000] + + - workload: CW2_3_2column_condition_1024_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 2000001, 3000000 ] + - util: PrimaryIntGen + params: [ 2000001, 3000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 2000001, 3000000] + + - workload: CW2_4_2column_condition_2048_upsert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + count: 2048 + bindings: + - util: PrimaryIntGen + params: [ 3000001, 4000000 ] + - util: PrimaryIntGen + params: [ 3000001, 4000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 3000001, 4000000] + + - workload: CW2_5_2column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 4000001, 5000000 ] + - util: PrimaryIntGen + params: [ 4000001, 5000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 4000001, 5000000] + + - workload: CW2_6_4column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1, addr_1, bal_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 5000001, 6000000 ] + - util: PrimaryIntGen + params: [ 5000001, 6000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 5000001, 6000000] + + - workload: CW2_7_2column_condition_10values_in_1upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET (user_id_1,account_id_1,addr_1,bal_1)=(excluded.user_id_1,excluded.account_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: CyclicSeqIntGen + params: [ 1, 500000 ] + - util: CyclicSeqIntGen + params: [ 1, 500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 1, 500000] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 500001, 1000000 ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 2000001, 2500000 ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 2500001, 3000000 ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3000001, 3500000 ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3500001, 4000000 ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4000001, 4500000 ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4500001, 5000000 ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 4250001, 4750000 ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: CyclicSeqIntGen + params: [ 3250001, 3750000 ] + + - workload: CW2_8_2column_condition_1_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET bal_1=accounts_1.bal_1+1 RETURNING * + bindings: + - util: PrimaryIntGen + params: [ 6000001, 7000000 ] + - util: PrimaryIntGen + params: [ 6000001, 7000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 6000001, 7000000] + + - workload: CW2_9_2column_condition_10_upsert_with_returning + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO accounts_1(user_id_1,account_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (user_id_1, account_id_1) DO UPDATE SET bal_1=accounts_1.bal_1+1 RETURNING * + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 7000001, 8000000 ] + - util: PrimaryIntGen + params: [ 7000001, 8000000 ] + - util: OneStringFromArray + params: [ "addr for the client" ] + - util: PrimaryIntGen + params: [ 7000001, 8000000] diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW3_select_for_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW3_select_for_update.yaml new file mode 100644 index 000000000..da92d8739 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW3_select_for_update.yaml @@ -0,0 +1,148 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW3_transactions_1; + - DROP TABLE IF EXISTS CW3_accounts_1; + - DROP TABLE IF EXISTS CW3_accounts_2; + + - CREATE TABLE IF NOT EXISTS CW3_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_CW3_accounts_1 ON CW3_accounts_1( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS CW3_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_CW3_accounts_2 ON CW3_accounts_2( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS CW3_transactions_1(tran_id_1 bigint PRIMARY KEY, account_id_1 bigint, amount_1 bigint, FOREIGN KEY(account_id_1) REFERENCES CW3_accounts_1(account_id_1) ON DELETE CASCADE ON UPDATE CASCADE) + + cleanup: + - DROP TABLE IF EXISTS CW3_accounts_1; + - DROP TABLE IF EXISTS CW3_transactions_1; + - DROP TABLE IF EXISTS CW3_accounts_2; + + loadRules: + - table: CW3_accounts_ + count: 2 + rows: 2000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 2000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 2000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 2000000, 2 ] + + # Entries are only available for transaction done by accounts from 1-10000 of table CW3_accounts_1. So relevant queries should only use that range. + - table: CW3_transactions_ + count: 1 + rows: 1000000 + columns: + - name: tran_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: account_id_ + count: 1 + util: RandomInt + params: [ 1, 10000 ] + - name: amount_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + + + executeRules: + - workload: CW3_1_select_baseline + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_1 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_2_update_baseline + run: + - name: statement1_insert + weight: 100 + queries: + - query: UPDATE CW3_accounts_1 SET bal_1=bal_1+1 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) returning bal_1 + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_3_select_for_update + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_4_select_for_update_nowait + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update NOWAIT + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_5_select_for_update_skip_lock + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT bal_1 FROM CW3_accounts_2 WHERE account_id_1=ANY(ARRAY[?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?]) for update SKIP LOCKED + bindings: + - util: RandomNumber + count: 50 + params: [ 1, 2000000 ] + + - workload: CW3_6_select_for_update_with_join + run: + - name: statement1_insert + weight: 100 + queries: + - query: SELECT * from CW3_accounts_1 a JOIN CW3_transactions_1 t on a.account_id_1 = t.account_id_1 where t.amount_1 > 0 for update; + + + - workload: CW3_7_select_for_update_with_CTE + run: + - name: statement1_insert + weight: 100 + queries: + - query: With high_value_transactions As (SELECT * from CW3_transactions_1 where amount_1>49 for update) UPDATE CW3_transactions_1 set amount_1=amount_1+1 WHERE tran_id_1 IN (Select tran_id_1 from high_value_transactions) diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW4_on_conflict_do_nothing.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW4_on_conflict_do_nothing.yaml new file mode 100644 index 000000000..2d19b84da --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW4_on_conflict_do_nothing.yaml @@ -0,0 +1,292 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v2.0 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW4_accounts_1; + - CREATE TABLE IF NOT EXISTS CW4_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX CW4_user_accounts_1 ON CW4_accounts_1(account_id_1, user_id_1); + + - DROP TABLE IF EXISTS CW4_accounts_2; + - CREATE TABLE IF NOT EXISTS CW4_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY HASH (account_id_1); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_0 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 0); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_1 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 1); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_2 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 2); + - CREATE TABLE IF NOT EXISTS CW4_0_2M_accounts_3 PARTITION OF CW4_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 3); + + - DROP TABLE IF EXISTS CW4_cardinality_tbl1_1 + - CREATE TABLE CW4_cardinality_tbl1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_2) INCLUDE (col_bigint_card3_1) # update multiple(1000) rows with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_3) INCLUDE (col_bigint_id_2) # update all(1M) rows with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_4) INCLUDE (col_int_id_4) # update single column + 1 row with point select + - CREATE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4) # update single column + 1M row + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_2); + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_3); + - CREATE UNIQUE INDEX ON CW4_cardinality_tbl1_1(col_bigint_id_4); + + cleanup: + - DROP TABLE IF EXISTS CW4_accounts_1; + - DROP TABLE IF EXISTS CW4_accounts_2; + - DROP TABLE IF EXISTS CW4_cardinality_tbl1_1; + + loadRules: + - table: CW4_accounts_ + count: 2 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 1000000, 2 ] + + - table: CW4_cardinality_tbl1_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: CW4_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 5000000, 2 ] + + - workload: CW4_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 5000001, 15000000 ] + - util: PrimaryIntGen + params: [ 5000001, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 5000001, 15000000, 2 ] + + - workload: CW4_3_no_condition_for_on_conflict_1row + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_cardinality_tbl1_1(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_id_4, col_bigint_id_5, col_bigint_id_6, col_int_id_1, col_int_id_2, col_int_id_3, col_int_id_4, col_int_card1_1, col_int_card1_2, col_int_card1_3, col_int_card1_4, col_varchar500_id_1) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT DO NOTHING + bindings: + - util: OneNumberFromArray + params: [ 1000000 ] + - util: RandomInt + params: [ 1000000,1001000 ] + - util: RandomInt + params: [ 1000000,1010000] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1000001, 5000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: PrimaryStringGen + params: [1, 500] + + - workload: CW4_4_no_condition_for_on_conflict_1024row + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_cardinality_tbl1_1(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_id_4, col_bigint_id_5, col_bigint_id_6, col_int_id_1, col_int_id_2, col_int_id_3, col_int_id_4, col_int_card1_1, col_int_card1_2, col_int_card1_3, col_int_card1_4, col_varchar500_id_1) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT DO NOTHING + count: 1024 + bindings: + - util: OneNumberFromArray + params: [ 1000000 ] + - util: RandomInt + params: [ 1000000,1001000 ] + - util: RandomInt + params: [ 1000000,1010000] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 5000001, 9000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: OneNumberFromArray + params: [ 1000000 ] + - util: PrimaryStringGen + params: [1, 500] + + - workload: CW4_5_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + bindings: + - util: PrimaryIntGen + params: [ 1000001, 10000000 ] + - util: PrimaryIntGen + params: [ 1000001, 10000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1000001, 10000000, 2 ] + + - workload: CW4_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO NOTHING + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 10000001, 30000000 ] + - util: PrimaryIntGen + params: [ 10000001, 30000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 10000001, 30000000, 2 ] + + - workload: CW4_7_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO NOTHING + pattern_count: 1024 + bindings: + - util: RandomNumber + params: [ 15000001, 25000000 ] + - util: RandomNumber + params: [ 15000001, 25000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 15000001, 25000000, 2 ] + + - workload: CW4_8_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW4_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO NOTHING + pattern_count: 1024 + bindings: + - util: RandomNumber + params: [ 30000001, 50000000 ] + - util: RandomNumber + params: [ 30000001, 50000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 30000001, 50000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW5_on_conflict_do_update.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW5_on_conflict_do_update.yaml new file mode 100644 index 000000000..dd6d9187a --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW5_on_conflict_do_update.yaml @@ -0,0 +1,160 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW5_accounts_1; + - CREATE TABLE IF NOT EXISTS CW5_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX CW5_user_accounts_1 ON CW5_accounts_1(account_id_1, user_id_1); + + - DROP TABLE IF EXISTS CW5_accounts_2; + - CREATE TABLE IF NOT EXISTS CW5_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY HASH (account_id_1); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_0 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 0); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_1 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 1); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_2 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 2); + - CREATE TABLE IF NOT EXISTS CW5_0_2M_accounts_3 PARTITION OF CW5_accounts_2 FOR VALUES WITH (MODULUS 4, REMAINDER 3); + + cleanup: + - DROP TABLE IF EXISTS CW5_accounts_1; + - DROP TABLE IF EXISTS CW5_accounts_2; + + loadRules: + - table: CW5_accounts_ + count: 2 + rows: 15000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 15000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 15000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + executeRules: + - workload: CW5_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 4000000 ] + - util: PrimaryIntGen + params: [ 1, 4000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 4000000, 2 ] + + - workload: CW5_3_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_4_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW5_5_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] + + + - workload: CW5_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_hash + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW5_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW6_on_conflict_do_update_range.yaml b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW6_on_conflict_do_update_range.yaml new file mode 100644 index 000000000..4a7ba9f63 --- /dev/null +++ b/config/yugabyte/regression_pipelines/conditional_workloads/yugabyte/CW6_on_conflict_do_update_range.yaml @@ -0,0 +1,162 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.2 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS CW6_accounts_1; + - CREATE TABLE IF NOT EXISTS CW6_accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1 ASC)); + - CREATE UNIQUE INDEX CW6_user_accounts_1 ON CW6_accounts_1(account_id_1 ASC, user_id_1 ASC); + + - DROP TABLE IF EXISTS CW6_accounts_2; + - CREATE TABLE IF NOT EXISTS CW6_accounts_2(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2),PRIMARY KEY(account_id_1)) PARTITION BY RANGE (account_id_1); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_0 PARTITION OF CW6_accounts_2 FOR VALUES FROM (1) TO (10000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_1 PARTITION OF CW6_accounts_2 FOR VALUES FROM (10000000) TO (20000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_2 PARTITION OF CW6_accounts_2 FOR VALUES FROM (20000000) TO (30000000); + - CREATE TABLE IF NOT EXISTS CW6_0_2M_accounts_3 PARTITION OF CW6_accounts_2 FOR VALUES FROM (30000000) TO (40000001); + cleanup: + - DROP TABLE IF EXISTS CW6_accounts_1; + - DROP TABLE IF EXISTS CW6_accounts_2; + + loadRules: + - table: CW6_accounts_ + count: 2 + rows: 40000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 40000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 40000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: PrimaryFloatGen + params: [ 1, 40000000, 2 ] + + executeRules: + - workload: CW6_1_2column_condition_no_conflict_on_pkey_so_single_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_2_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_3_no_conflict_on_pkey_so_single_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + - workload: CW6_4_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES (?,?,?,?) ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + count: 1024 + bindings: + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryIntGen + params: [ 1, 15000000 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: PrimaryFloatGen + params: [ 1, 15000000, 2 ] + + + + - workload: CW6_5_2column_condition_no_conflict_on_pkey_so_1024_insert + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_1(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 15000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] + + + - workload: CW6_6_no_conflict_on_pkey_so_1024_insert_on_partitioned_tbl_by_range + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO CW6_accounts_2(account_id_1,user_id_1,addr_1,bal_1) VALUES [(?,?,?,?)][pattern_count] ON CONFLICT (account_id_1) DO UPDATE SET (account_id_1,user_id_1,addr_1,bal_1)=(excluded.account_id_1,excluded.user_id_1,excluded.addr_1,excluded.bal_1) + pattern_count: 1024 + bindings: + - util: RandomUniqueIntGen + params: [ 1, 40000000 ] + - util: RandomNumber + params: [ 4000001, 15000000 ] + - util: RandomAString + params: [ 50, 50 ] + - util: RandomFloat + params: [ 4000001, 15000000, 2 ] + diff --git a/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G1_varyingFKconstraint_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G1_varyingFKconstraint_child_table_ops.yaml new file mode 100644 index 000000000..c3e6676ad --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G1_varyingFKconstraint_child_table_ops.yaml @@ -0,0 +1,365 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 + +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + + - create table projects_with_pk(id int primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_uniqueCol(id int primary key, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_2_fk(id int primary key, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + + - create table employees_with_fk_on_pk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_fk_on_uniqueCol(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_2_fk_1_parent(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id1 int not null, project_id2 int not null); + - create table employees_without_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + cleanup: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + + loadRules: + - table: projects_with_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_uniqueCol + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_fk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_without_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_pk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_uniqueCol + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id1 + util: RandomInt + params: [1,100000] + - name: project_id2 + util: RandomInt + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_fk_on_pk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_pk(id); + - ALTER TABLE employees_with_fk_on_uniqueCol add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_uniqueCol(uid); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_id1) REFERENCES projects_with_2_fk(id); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_id2) REFERENCES projects_with_2_fk(uid); + + executeRules: + + - workload: FK_G1_1_fk-on-pk_insert + run: + - name: FK_G1_1_fk-on-pk_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_pk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_2_fk-on-pk_update + run: + - name: FK_G1_2_fk-on-pk_update + weight: 100 + queries: + - query: update employees_with_fk_on_pk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_3_fk-on-uniqueCol_insert + run: + - name: FK_G1_3_fk-on-uniqueCol_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_uniqueCol values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_4_fk-on-uniqueCol_update + run: + - name: FK_G1_4_fk-on-uniqueCol_update + weight: 100 + queries: + - query: update employees_with_fk_on_uniqueCol set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_5_no-fk_insert + run: + - name: FK_G1_5_no-fk_insert + weight: 100 + queries: + - query: insert into employees_without_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_6_no-fk_update + run: + - name: FK_G1_6_no-fk_update + weight: 100 + queries: + - query: update employees_without_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_7_2fk_insert + run: + - name: FK_G1_7_2fk_insert + weight: 100 + queries: + - query: insert into employees_with_2_fk_1_parent values(?,?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_8_2fk_update + run: + - name: FK_G1_8_2fk_update + weight: 100 + queries: + - query: update employees_with_2_fk_1_parent set project_id1=?, project_id2=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G2_varyingFKcount_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G2_varyingFKcount_parent_table_ops.yaml new file mode 100644 index 000000000..d3b4dce58 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G2_varyingFKcount_parent_table_ops.yaml @@ -0,0 +1,236 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 + +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + + - create table projects_with_1_ref(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_2_ref_1_child(id int primary key, uid1 int unique, uid2 int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_without_ref(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + + - create table employees_with_1_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_2_fk_1_parent(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_uid1 int not null, project_uid2 int not null); + + - CREATE INDEX project_uid_index ON employees_with_1_fk (project_id); + - CREATE INDEX project_uid1_index ON employees_with_2_fk_1_parent (project_uid1); + - CREATE INDEX project_uid2_index ON employees_with_2_fk_1_parent (project_uid2); + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + loadRules: + - table: projects_with_1_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_without_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_ref_1_child + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid1 + util: PrimaryIntGen + params: [1, 100000] + - name: uid2 + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_uid1 + util: CyclicSeqIntGen + params: [1,100000] + - name: project_uid2 + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_uid1) REFERENCES projects_with_2_ref_1_child(uid1) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_uid2) REFERENCES projects_with_2_ref_1_child(uid2) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G2_1_no-fk_update + run: + - name: FK_G2_1_no-fk_update + weight: 100 + queries: + - query: update projects_without_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_2_no-fk_delete + run: + - name: FK_G2_2_no-fk_delete + weight: 100 + queries: + - query: delete from projects_without_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_3_1-fk_update + run: + - name: FK_G2_3_1-fk_update + weight: 100 + queries: + - query: update projects_with_1_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_4_1-fk_delete + run: + - name: FK_G2_4_1-fk_delete + weight: 100 + queries: + - query: delete from projects_with_1_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_5_2-fk_update + run: + - name: FK_G2_5_2-fk_update + weight: 100 + queries: + - query: update projects_with_2_ref_1_child set uid1=uid1+100000, uid2=uid2+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_6_2-fk_delete + run: + - name: FK_G2_6_2-fk_delete + weight: 100 + queries: + - query: delete from projects_with_2_ref_1_child where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G3_varyingFKdatatypes_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G3_varyingFKdatatypes_child_table_ops.yaml new file mode 100644 index 000000000..9e4462c83 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G3_varyingFKdatatypes_child_table_ops.yaml @@ -0,0 +1,287 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 + +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + + - create table projects_with_int_pk(id int primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_bigint_pk(id bigint primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_varchar_pk(id varchar(6) primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + + - create table employees_with_int_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_bigint_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id bigint not null); + - create table employees_with_varchar_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id varchar(6) not null); + cleanup: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + loadRules: + - table: projects_with_int_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_bigint_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_varchar_pk + rows: 100000 + columns: + - name: id + util: PrimaryStringGen + params: [1, 6] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_int_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_bigint_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_varchar_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 20] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomPKString + params: [1,100000,6] + + afterLoad: + - ALTER TABLE employees_with_int_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_int_pk(id); + - ALTER TABLE employees_with_bigint_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_bigint_pk(id); + - ALTER TABLE employees_with_varchar_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_varchar_pk(id); + + executeRules: + + - workload: FK_G3_1_varchar_insert + run: + - name: FK_G3_1_varchar_insert + weight: 100 + queries: + - query: insert into employees_with_varchar_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 20] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomPKString + params: [1,100000,6] + + - workload: FK_G3_2_varchar_update + run: + - name: FK_G3_2_varchar_update + weight: 100 + queries: + - query: update employees_with_varchar_fk set project_id=? where id=?; + bindings: + - util: RandomPKString + params: [1,100000,6] + - util: PrimaryIntGen + params: [1,1000000] + + - workload: FK_G3_3_bigint_insert + run: + - name: FK_G3_3_bigint_insert + weight: 100 + queries: + - query: insert into employees_with_bigint_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_4_bigint_update + run: + - name: FK_G3_4_bigint_update + weight: 100 + queries: + - query: update employees_with_bigint_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G3_5_int_insert + run: + - name: FK_G3_5_int_insert + weight: 100 + queries: + - query: insert into employees_with_int_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_6_int_update + run: + - name: FK_G3_6_int_update + weight: 100 + queries: + - query: update employees_with_int_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G4_varyingFKcardinality_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G4_varyingFKcardinality_parent_table_ops.yaml new file mode 100644 index 000000000..8907fe540 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/postgres/FK_G4_varyingFKcardinality_parent_table_ops.yaml @@ -0,0 +1,340 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 + +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + + - create table projects_with_1_ref_1_to_1_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_1_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - create table projects_with_1_ref_1_to_10_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_10_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - create table projects_with_1_ref_1_to_100_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_100_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - create table projects_with_1_ref_1_to_1000_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_1000_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - CREATE INDEX project_uid_index_1_to_1_cardinality ON employees_with_1_fk_1_to_1_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_10_cardinality ON employees_with_1_fk_1_to_10_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_100_cardinality ON employees_with_1_fk_1_to_100_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_1000_cardinality ON employees_with_1_fk_1_to_1000_cardinality (project_id); + + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + loadRules: + - table: projects_with_1_ref_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_10_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_10_cardinality + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_100_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_100_cardinality + rows: 10000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 10000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_1000_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1000_cardinality + rows: 100000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk_1_to_1_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_10_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_10_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_100_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_100_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_1000_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1000_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G4_1_update_1_to_1_cardinality + run: + - name: FK_G4_1_update_1_to_1_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_2_delete_1_to_1_cardinality + run: + - name: FK_G4_2_delete_1_to_1_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_3_update_1_to_10_cardinality + run: + - name: FK_G4_3_update_1_to_10_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_10_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_4_delete_1_to_10_cardinality + run: + - name: FK_G4_4_delete_1_to_10_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_10_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_5_update_1_to_100_cardinality + run: + - name: FK_G4_5_update_1_to_100_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_100_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_6_delete_1_to_100_cardinality + run: + - name: FK_G4_6_delete_1_to_100_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_100_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_7_update_1_to_1000_cardinality + run: + - name: FK_G4_7_update_1_to_1000_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1000_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_8_delete_1_to_1000_cardinality + run: + - name: FK_G4_8_delete_1_to_1000_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1000_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G1_varyingFKconstraint_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G1_varyingFKconstraint_child_table_ops.yaml new file mode 100644 index 000000000..a060b6673 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G1_varyingFKconstraint_child_table_ops.yaml @@ -0,0 +1,366 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + + - create table projects_with_pk(id int, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_uniqueCol(id int, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_2_fk(id int, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + + - create table employees_with_fk_on_pk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_fk_on_uniqueCol(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_2_fk_1_parent(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id1 int not null, project_id2 int not null, primary key(id asc)); + - create table employees_without_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + cleanup: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + loadRules: + - table: projects_with_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_uniqueCol + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_fk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_without_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_pk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_uniqueCol + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id1 + util: RandomInt + params: [1,100000] + - name: project_id2 + util: RandomInt + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_fk_on_pk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_pk(id); + - ALTER TABLE employees_with_fk_on_uniqueCol add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_uniqueCol(uid); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_id1) REFERENCES projects_with_2_fk(id); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_id2) REFERENCES projects_with_2_fk(uid); + + executeRules: + + - workload: FK_G1_1_fk-on-pk_insert + run: + - name: FK_G1_1_fk-on-pk_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_pk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_2_fk-on-pk_update + run: + - name: FK_G1_2_fk-on-pk_update + weight: 100 + queries: + - query: update employees_with_fk_on_pk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_3_fk-on-uniqueCol_insert + run: + - name: FK_G1_3_fk-on-uniqueCol_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_uniqueCol values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_4_fk-on-uniqueCol_update + run: + - name: FK_G1_4_fk-on-uniqueCol_update + weight: 100 + queries: + - query: update employees_with_fk_on_uniqueCol set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_5_no-fk_insert + run: + - name: FK_G1_5_no-fk_insert + weight: 100 + queries: + - query: insert into employees_without_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_6_no-fk_update + run: + - name: FK_G1_6_no-fk_update + weight: 100 + queries: + - query: update employees_without_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_7_2fk_insert + run: + - name: FK_G1_7_2fk_insert + weight: 100 + queries: + - query: insert into employees_with_2_fk_1_parent values(?,?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_8_2fk_update + run: + - name: FK_G1_8_2fk_update + weight: 100 + queries: + - query: update employees_with_2_fk_1_parent set project_id1=?, project_id2=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G2_varyingFKcount_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G2_varyingFKcount_parent_table_ops.yaml new file mode 100644 index 000000000..aad7e8e71 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G2_varyingFKcount_parent_table_ops.yaml @@ -0,0 +1,239 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + + - create table projects_with_1_ref(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_2_ref_1_child(id int, uid1 int unique, uid2 int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_without_ref(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + + - create table employees_with_1_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_2_fk_1_parent(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_uid1 int not null, project_uid2 int not null, primary key(id asc)); + + - CREATE INDEX project_uid_index ON employees_with_1_fk (project_id); + - CREATE INDEX project_uid1_index ON employees_with_2_fk_1_parent (project_uid1); + - CREATE INDEX project_uid2_index ON employees_with_2_fk_1_parent (project_uid2); + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + loadRules: + - table: projects_with_1_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_without_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_ref_1_child + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid1 + util: PrimaryIntGen + params: [1, 100000] + - name: uid2 + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_uid1 + util: CyclicSeqIntGen + params: [1,100000] + - name: project_uid2 + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_uid1) REFERENCES projects_with_2_ref_1_child(uid1) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_uid2) REFERENCES projects_with_2_ref_1_child(uid2) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G2_1_no-fk_update + run: + - name: FK_G2_1_no-fk_update + weight: 100 + queries: + - query: update projects_without_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_2_no-fk_delete + run: + - name: FK_G2_2_no-fk_delete + weight: 100 + queries: + - query: delete from projects_without_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_3_1-fk_update + run: + - name: FK_G2_3_1-fk_update + weight: 100 + queries: + - query: update projects_with_1_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_4_1-fk_delete + run: + - name: FK_G2_4_1-fk_delete + weight: 100 + queries: + - query: delete from projects_with_1_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_5_2-fk_update + run: + - name: FK_G2_5_2-fk_update + weight: 100 + queries: + - query: update projects_with_2_ref_1_child set uid1=uid1+100000, uid2=uid2+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_6_2-fk_delete + run: + - name: FK_G2_6_2-fk_delete + weight: 100 + queries: + - query: delete from projects_with_2_ref_1_child where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G3_varyingFKdatatypes_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G3_varyingFKdatatypes_child_table_ops.yaml new file mode 100644 index 000000000..4f2f4bcb3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G3_varyingFKdatatypes_child_table_ops.yaml @@ -0,0 +1,290 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + + - create table projects_with_int_pk(id int, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_bigint_pk(id bigint, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_varchar_pk(id varchar(6), name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + + - create table employees_with_int_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_bigint_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id bigint not null, primary key(id asc)); + - create table employees_with_varchar_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id varchar(6) not null, primary key(id asc)); + cleanup: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + loadRules: + - table: projects_with_int_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_bigint_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_varchar_pk + rows: 100000 + columns: + - name: id + util: PrimaryStringGen + params: [1, 6] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_int_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_bigint_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_varchar_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 20] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomPKString + params: [1,100000,6] + + afterLoad: + - ALTER TABLE employees_with_int_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_int_pk(id); + - ALTER TABLE employees_with_bigint_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_bigint_pk(id); + - ALTER TABLE employees_with_varchar_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_varchar_pk(id); + + executeRules: + + - workload: FK_G3_1_varchar_insert + run: + - name: FK_G3_1_varchar_insert + weight: 100 + queries: + - query: insert into employees_with_varchar_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 20] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomPKString + params: [1,100000,6] + + - workload: FK_G3_2_varchar_update + run: + - name: FK_G3_2_varchar_update + weight: 100 + queries: + - query: update employees_with_varchar_fk set project_id=? where id=?; + bindings: + - util: RandomPKString + params: [1,100000,6] + - util: PrimaryIntGen + params: [1,1000000] + + - workload: FK_G3_3_bigint_insert + run: + - name: FK_G3_3_bigint_insert + weight: 100 + queries: + - query: insert into employees_with_bigint_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_4_bigint_update + run: + - name: FK_G3_4_bigint_update + weight: 100 + queries: + - query: update employees_with_bigint_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G3_5_int_insert + run: + - name: FK_G3_5_int_insert + weight: 100 + queries: + - query: insert into employees_with_int_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_6_int_update + run: + - name: FK_G3_6_int_update + weight: 100 + queries: + - query: update employees_with_int_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G4_varyingFKcardinality_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G4_varyingFKcardinality_parent_table_ops.yaml new file mode 100644 index 000000000..dd3170450 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yb_colocated/FK_G4_varyingFKcardinality_parent_table_ops.yaml @@ -0,0 +1,342 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + + - create table projects_with_1_ref_1_to_1_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_1_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - create table projects_with_1_ref_1_to_10_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_10_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - create table projects_with_1_ref_1_to_100_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_100_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - create table projects_with_1_ref_1_to_1000_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_1000_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - CREATE INDEX project_uid_index_1_to_1_cardinality ON employees_with_1_fk_1_to_1_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_10_cardinality ON employees_with_1_fk_1_to_10_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_100_cardinality ON employees_with_1_fk_1_to_100_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_1000_cardinality ON employees_with_1_fk_1_to_1000_cardinality (project_id); + + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + loadRules: + - table: projects_with_1_ref_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_10_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_10_cardinality + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_100_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_100_cardinality + rows: 10000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 10000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_1000_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1000_cardinality + rows: 100000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk_1_to_1_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_10_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_10_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_100_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_100_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_1000_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1000_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G4_1_update_1_to_1_cardinality + run: + - name: FK_G4_1_update_1_to_1_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_2_delete_1_to_1_cardinality + run: + - name: FK_G4_2_delete_1_to_1_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_3_update_1_to_10_cardinality + run: + - name: FK_G4_3_update_1_to_10_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_10_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_4_delete_1_to_10_cardinality + run: + - name: FK_G4_4_delete_1_to_10_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_10_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_5_update_1_to_100_cardinality + run: + - name: FK_G4_5_update_1_to_100_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_100_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_6_delete_1_to_100_cardinality + run: + - name: FK_G4_6_delete_1_to_100_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_100_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_7_update_1_to_1000_cardinality + run: + - name: FK_G4_7_update_1_to_1000_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1000_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_8_delete_1_to_1000_cardinality + run: + - name: FK_G4_8_delete_1_to_1000_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1000_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G1_varyingFKconstraint_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G1_varyingFKconstraint_child_table_ops.yaml new file mode 100644 index 000000000..95e082d4a --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G1_varyingFKconstraint_child_table_ops.yaml @@ -0,0 +1,367 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + + - create table projects_with_pk(id int primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_uniqueCol(id int primary key, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_2_fk(id int primary key, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + + - create table employees_with_fk_on_pk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_fk_on_uniqueCol(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_2_fk_1_parent(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id1 int not null, project_id2 int not null); + - create table employees_without_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + cleanup: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + + loadRules: + - table: projects_with_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_uniqueCol + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_fk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_without_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_pk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_uniqueCol + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id1 + util: RandomInt + params: [1,100000] + - name: project_id2 + util: RandomInt + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_fk_on_pk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_pk(id); + - ALTER TABLE employees_with_fk_on_uniqueCol add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_uniqueCol(uid); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_id1) REFERENCES projects_with_2_fk(id); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_id2) REFERENCES projects_with_2_fk(uid); + + executeRules: + + - workload: FK_G1_1_fk-on-pk_insert + run: + - name: FK_G1_1_fk-on-pk_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_pk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_2_fk-on-pk_update + run: + - name: FK_G1_2_fk-on-pk_update + weight: 100 + queries: + - query: update employees_with_fk_on_pk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_3_fk-on-uniqueCol_insert + run: + - name: FK_G1_3_fk-on-uniqueCol_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_uniqueCol values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_4_fk-on-uniqueCol_update + run: + - name: FK_G1_4_fk-on-uniqueCol_update + weight: 100 + queries: + - query: update employees_with_fk_on_uniqueCol set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_5_no-fk_insert + run: + - name: FK_G1_5_no-fk_insert + weight: 100 + queries: + - query: insert into employees_without_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_6_no-fk_update + run: + - name: FK_G1_6_no-fk_update + weight: 100 + queries: + - query: update employees_without_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_7_2fk_insert + run: + - name: FK_G1_7_2fk_insert + weight: 100 + queries: + - query: insert into employees_with_2_fk_1_parent values(?,?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_8_2fk_update + run: + - name: FK_G1_8_2fk_update + weight: 100 + queries: + - query: update employees_with_2_fk_1_parent set project_id1=?, project_id2=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G2_varyingFKcount_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G2_varyingFKcount_parent_table_ops.yaml new file mode 100644 index 000000000..e322120d1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G2_varyingFKcount_parent_table_ops.yaml @@ -0,0 +1,238 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + + - create table projects_with_1_ref(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_2_ref_1_child(id int primary key, uid1 int unique, uid2 int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_without_ref(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + + - create table employees_with_1_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_2_fk_1_parent(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_uid1 int not null, project_uid2 int not null); + + - CREATE INDEX project_uid_index ON employees_with_1_fk (project_id); + - CREATE INDEX project_uid1_index ON employees_with_2_fk_1_parent (project_uid1); + - CREATE INDEX project_uid2_index ON employees_with_2_fk_1_parent (project_uid2); + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + loadRules: + - table: projects_with_1_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_without_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_ref_1_child + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid1 + util: PrimaryIntGen + params: [1, 100000] + - name: uid2 + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_uid1 + util: CyclicSeqIntGen + params: [1,100000] + - name: project_uid2 + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_uid1) REFERENCES projects_with_2_ref_1_child(uid1) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_uid2) REFERENCES projects_with_2_ref_1_child(uid2) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G2_1_no-fk_update + run: + - name: FK_G2_1_no-fk_update + weight: 100 + queries: + - query: update projects_without_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_2_no-fk_delete + run: + - name: FK_G2_2_no-fk_delete + weight: 100 + queries: + - query: delete from projects_without_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_3_1-fk_update + run: + - name: FK_G2_3_1-fk_update + weight: 100 + queries: + - query: update projects_with_1_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_4_1-fk_delete + run: + - name: FK_G2_4_1-fk_delete + weight: 100 + queries: + - query: delete from projects_with_1_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_5_2-fk_update + run: + - name: FK_G2_5_2-fk_update + weight: 100 + queries: + - query: update projects_with_2_ref_1_child set uid1=uid1+100000, uid2=uid2+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_6_2-fk_delete + run: + - name: FK_G2_6_2-fk_delete + weight: 100 + queries: + - query: delete from projects_with_2_ref_1_child where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G3_varyingFKdatatypes_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G3_varyingFKdatatypes_child_table_ops.yaml new file mode 100644 index 000000000..e5e9424f4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G3_varyingFKdatatypes_child_table_ops.yaml @@ -0,0 +1,289 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + + - create table projects_with_int_pk(id int primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_bigint_pk(id bigint primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table projects_with_varchar_pk(id varchar(6) primary key, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + + - create table employees_with_int_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + - create table employees_with_bigint_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id bigint not null); + - create table employees_with_varchar_fk(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id varchar(6) not null); + cleanup: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + loadRules: + - table: projects_with_int_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_bigint_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_varchar_pk + rows: 100000 + columns: + - name: id + util: PrimaryStringGen + params: [1, 6] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_int_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_bigint_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_varchar_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 20] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomPKString + params: [1,100000,6] + + afterLoad: + - ALTER TABLE employees_with_int_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_int_pk(id); + - ALTER TABLE employees_with_bigint_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_bigint_pk(id); + - ALTER TABLE employees_with_varchar_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_varchar_pk(id); + + executeRules: + + - workload: FK_G3_1_varchar_insert + run: + - name: FK_G3_1_varchar_insert + weight: 100 + queries: + - query: insert into employees_with_varchar_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 20] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomPKString + params: [1,100000,6] + + - workload: FK_G3_2_varchar_update + run: + - name: FK_G3_2_varchar_update + weight: 100 + queries: + - query: update employees_with_varchar_fk set project_id=? where id=?; + bindings: + - util: RandomPKString + params: [1,100000,6] + - util: PrimaryIntGen + params: [1,1000000] + + - workload: FK_G3_3_bigint_insert + run: + - name: FK_G3_3_bigint_insert + weight: 100 + queries: + - query: insert into employees_with_bigint_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_4_bigint_update + run: + - name: FK_G3_4_bigint_update + weight: 100 + queries: + - query: update employees_with_bigint_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G3_5_int_insert + run: + - name: FK_G3_5_int_insert + weight: 100 + queries: + - query: insert into employees_with_int_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_6_int_update + run: + - name: FK_G3_6_int_update + weight: 100 + queries: + - query: update employees_with_int_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G4_varyingFKcardinality_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G4_varyingFKcardinality_parent_table_ops.yaml new file mode 100644 index 000000000..d5d6e3385 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte/FK_G4_varyingFKcardinality_parent_table_ops.yaml @@ -0,0 +1,341 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + + - create table projects_with_1_ref_1_to_1_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_1_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - create table projects_with_1_ref_1_to_10_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_10_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - create table projects_with_1_ref_1_to_100_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_100_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - create table projects_with_1_ref_1_to_1000_cardinality(id int primary key, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2)); + - create table employees_with_1_fk_1_to_1000_cardinality(id int primary key,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null); + + - CREATE INDEX project_uid_index_1_to_1_cardinality ON employees_with_1_fk_1_to_1_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_10_cardinality ON employees_with_1_fk_1_to_10_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_100_cardinality ON employees_with_1_fk_1_to_100_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_1000_cardinality ON employees_with_1_fk_1_to_1000_cardinality (project_id); + + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + loadRules: + - table: projects_with_1_ref_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_10_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_10_cardinality + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_100_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_100_cardinality + rows: 10000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 10000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_1000_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1000_cardinality + rows: 100000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk_1_to_1_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_10_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_10_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_100_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_100_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_1000_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1000_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G4_1_update_1_to_1_cardinality + run: + - name: FK_G4_1_update_1_to_1_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_2_delete_1_to_1_cardinality + run: + - name: FK_G4_2_delete_1_to_1_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_3_update_1_to_10_cardinality + run: + - name: FK_G4_3_update_1_to_10_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_10_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_4_delete_1_to_10_cardinality + run: + - name: FK_G4_4_delete_1_to_10_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_10_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_5_update_1_to_100_cardinality + run: + - name: FK_G4_5_update_1_to_100_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_100_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_6_delete_1_to_100_cardinality + run: + - name: FK_G4_6_delete_1_to_100_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_100_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_7_update_1_to_1000_cardinality + run: + - name: FK_G4_7_update_1_to_1000_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1000_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_8_delete_1_to_1000_cardinality + run: + - name: FK_G4_8_delete_1_to_1000_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1000_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G1_varyingFKconstraint_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G1_varyingFKconstraint_child_table_ops.yaml new file mode 100644 index 000000000..be2401ec0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G1_varyingFKconstraint_child_table_ops.yaml @@ -0,0 +1,365 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + + - create table projects_with_pk(id int, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_uniqueCol(id int, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_2_fk(id int, uid int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + + - create table employees_with_fk_on_pk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_fk_on_uniqueCol(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_2_fk_1_parent(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id1 int not null, project_id2 int not null, primary key(id asc)); + - create table employees_without_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + cleanup: + - DROP TABLE IF EXISTS employees_with_fk_on_pk; + - DROP TABLE IF EXISTS employees_with_fk_on_uniqueCol; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + - DROP TABLE IF EXISTS employees_without_fk; + + - DROP TABLE IF EXISTS projects_with_pk; + - DROP TABLE IF EXISTS projects_with_uniqueCol; + - DROP TABLE IF EXISTS projects_with_2_fk; + loadRules: + - table: projects_with_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_uniqueCol + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_fk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_without_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_pk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_fk_on_uniqueCol + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id1 + util: RandomInt + params: [1,100000] + - name: project_id2 + util: RandomInt + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_fk_on_pk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_pk(id); + - ALTER TABLE employees_with_fk_on_uniqueCol add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_uniqueCol(uid); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_id1) REFERENCES projects_with_2_fk(id); + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_id2) REFERENCES projects_with_2_fk(uid); + + executeRules: + + - workload: FK_G1_1_fk-on-pk_insert + run: + - name: FK_G1_1_fk-on-pk_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_pk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_2_fk-on-pk_update + run: + - name: FK_G1_2_fk-on-pk_update + weight: 100 + queries: + - query: update employees_with_fk_on_pk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_3_fk-on-uniqueCol_insert + run: + - name: FK_G1_3_fk-on-uniqueCol_insert + weight: 100 + queries: + - query: insert into employees_with_fk_on_uniqueCol values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_4_fk-on-uniqueCol_update + run: + - name: FK_G1_4_fk-on-uniqueCol_update + weight: 100 + queries: + - query: update employees_with_fk_on_uniqueCol set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_5_no-fk_insert + run: + - name: FK_G1_5_no-fk_insert + weight: 100 + queries: + - query: insert into employees_without_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_6_no-fk_update + run: + - name: FK_G1_6_no-fk_update + weight: 100 + queries: + - query: update employees_without_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G1_7_2fk_insert + run: + - name: FK_G1_7_2fk_insert + weight: 100 + queries: + - query: insert into employees_with_2_fk_1_parent values(?,?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + - util: RandomInt + params: [1,100000] + + - workload: FK_G1_8_2fk_update + run: + - name: FK_G1_8_2fk_update + weight: 100 + queries: + - query: update employees_with_2_fk_1_parent set project_id1=?, project_id2=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G2_varyingFKcount_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G2_varyingFKcount_parent_table_ops.yaml new file mode 100644 index 000000000..2c6b4e6fd --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G2_varyingFKcount_parent_table_ops.yaml @@ -0,0 +1,238 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + + - create table projects_with_1_ref(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_2_ref_1_child(id int, uid1 int unique, uid2 int unique, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_without_ref(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + + - create table employees_with_1_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_2_fk_1_parent(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_uid1 int not null, project_uid2 int not null, primary key(id asc)); + + - CREATE INDEX project_uid_index ON employees_with_1_fk (project_id); + - CREATE INDEX project_uid1_index ON employees_with_2_fk_1_parent (project_uid1); + - CREATE INDEX project_uid2_index ON employees_with_2_fk_1_parent (project_uid2); + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk; + - DROP TABLE IF EXISTS employees_with_2_fk_1_parent; + + - DROP TABLE IF EXISTS projects_with_1_ref; + - DROP TABLE IF EXISTS projects_with_2_ref_1_child; + - DROP TABLE IF EXISTS projects_without_ref; + loadRules: + - table: projects_with_1_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_without_ref + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_2_ref_1_child + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid1 + util: PrimaryIntGen + params: [1, 100000] + - name: uid2 + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: employees_with_2_fk_1_parent + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_uid1 + util: CyclicSeqIntGen + params: [1,100000] + - name: project_uid2 + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project1 FOREIGN KEY (project_uid1) REFERENCES projects_with_2_ref_1_child(uid1) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_2_fk_1_parent add CONSTRAINT fk_project2 FOREIGN KEY (project_uid2) REFERENCES projects_with_2_ref_1_child(uid2) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G2_1_no-fk_update + run: + - name: FK_G2_1_no-fk_update + weight: 100 + queries: + - query: update projects_without_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_2_no-fk_delete + run: + - name: FK_G2_2_no-fk_delete + weight: 100 + queries: + - query: delete from projects_without_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_3_1-fk_update + run: + - name: FK_G2_3_1-fk_update + weight: 100 + queries: + - query: update projects_with_1_ref set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_4_1-fk_delete + run: + - name: FK_G2_4_1-fk_delete + weight: 100 + queries: + - query: delete from projects_with_1_ref where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_5_2-fk_update + run: + - name: FK_G2_5_2-fk_update + weight: 100 + queries: + - query: update projects_with_2_ref_1_child set uid1=uid1+100000, uid2=uid2+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G2_6_2-fk_delete + run: + - name: FK_G2_6_2-fk_delete + weight: 100 + queries: + - query: delete from projects_with_2_ref_1_child where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G3_varyingFKdatatypes_child_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G3_varyingFKdatatypes_child_table_ops.yaml new file mode 100644 index 000000000..243314c08 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G3_varyingFKdatatypes_child_table_ops.yaml @@ -0,0 +1,289 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + + - create table projects_with_int_pk(id int, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_bigint_pk(id bigint, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table projects_with_varchar_pk(id varchar(6), name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + + - create table employees_with_int_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + - create table employees_with_bigint_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id bigint not null, primary key(id asc)); + - create table employees_with_varchar_fk(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id varchar(6) not null, primary key(id asc)); + cleanup: + - DROP TABLE IF EXISTS employees_with_int_fk; + - DROP TABLE IF EXISTS employees_with_bigint_fk; + - DROP TABLE IF EXISTS employees_with_varchar_fk; + + - DROP TABLE IF EXISTS projects_with_int_pk; + - DROP TABLE IF EXISTS projects_with_bigint_pk; + - DROP TABLE IF EXISTS projects_with_varchar_pk; + loadRules: + - table: projects_with_int_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_bigint_pk + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: projects_with_varchar_pk + rows: 100000 + columns: + - name: id + util: PrimaryStringGen + params: [1, 6] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_int_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_bigint_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomInt + params: [1,100000] + + - table: employees_with_varchar_fk + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 20] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: RandomPKString + params: [1,100000,6] + + afterLoad: + - ALTER TABLE employees_with_int_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_int_pk(id); + - ALTER TABLE employees_with_bigint_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_bigint_pk(id); + - ALTER TABLE employees_with_varchar_fk add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_varchar_pk(id); + + executeRules: + + - workload: FK_G3_1_varchar_insert + run: + - name: FK_G3_1_varchar_insert + weight: 100 + queries: + - query: insert into employees_with_varchar_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 20] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomPKString + params: [1,100000,6] + + - workload: FK_G3_2_varchar_update + run: + - name: FK_G3_2_varchar_update + weight: 100 + queries: + - query: update employees_with_varchar_fk set project_id=? where id=?; + bindings: + - util: RandomPKString + params: [1,100000,6] + - util: PrimaryIntGen + params: [1,1000000] + + - workload: FK_G3_3_bigint_insert + run: + - name: FK_G3_3_bigint_insert + weight: 100 + queries: + - query: insert into employees_with_bigint_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_4_bigint_update + run: + - name: FK_G3_4_bigint_update + weight: 100 + queries: + - query: update employees_with_bigint_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] + + - workload: FK_G3_5_int_insert + run: + - name: FK_G3_5_int_insert + weight: 100 + queries: + - query: insert into employees_with_int_fk values(?,?,?,?,?,?,?); + bindings: + - util: PrimaryIntGen + params: [1000001, 9000000] + - util: RandomAString + params: [1, 20] + - util: RandomAString + params: [1, 100] + - util: RandomNstring + params: [10, 15] + - util: RandomAString + params: [1, 10] + - util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - util: RandomInt + params: [1,100000] + + - workload: FK_G3_6_int_update + run: + - name: FK_G3_6_int_update + weight: 100 + queries: + - query: update employees_with_int_fk set project_id=? where id=?; + bindings: + - util: RandomInt + params: [1, 100000] + - util: PrimaryIntGen + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G4_varyingFKcardinality_parent_table_ops.yaml b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G4_varyingFKcardinality_parent_table_ops.yaml new file mode 100644 index 000000000..55c60e253 --- /dev/null +++ b/config/yugabyte/regression_pipelines/foreign_key/yugabyte_range/FK_G4_varyingFKcardinality_parent_table_ops.yaml @@ -0,0 +1,341 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +analyze_on_all_tables: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + + - create table projects_with_1_ref_1_to_1_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_1_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - create table projects_with_1_ref_1_to_10_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_10_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - create table projects_with_1_ref_1_to_100_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_100_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - create table projects_with_1_ref_1_to_1000_cardinality(id int, uid int unique not null, name varchar(20) not null, start_date date not null, end_date date, budget decimal(10,2), primary key(id asc)); + - create table employees_with_1_fk_1_to_1000_cardinality(id int,name varchar(20) not null, email varchar(100) not null, phone varchar(15), position varchar(10), salary decimal(10,2), project_id int not null, primary key(id asc)); + + - CREATE INDEX project_uid_index_1_to_1_cardinality ON employees_with_1_fk_1_to_1_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_10_cardinality ON employees_with_1_fk_1_to_10_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_100_cardinality ON employees_with_1_fk_1_to_100_cardinality (project_id); + - CREATE INDEX project_uid_index_1_to_1000_cardinality ON employees_with_1_fk_1_to_1000_cardinality (project_id); + + cleanup: + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_10_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_10_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_100_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_100_cardinality; + + - DROP TABLE IF EXISTS employees_with_1_fk_1_to_1000_cardinality; + - DROP TABLE IF EXISTS projects_with_1_ref_1_to_1000_cardinality; + loadRules: + - table: projects_with_1_ref_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_10_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_10_cardinality + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_100_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_100_cardinality + rows: 10000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 10000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + - table: projects_with_1_ref_1_to_1000_cardinality + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: uid + util: PrimaryIntGen + params: [1, 100000] + - name: name + util: RandomAString + params: [1, 20] + - name: start_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: end_date + util: RandomDateBtwYears + params: [2000, 2025] + - name: budget + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + + - table: employees_with_1_fk_1_to_1000_cardinality + rows: 100000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000000] + - name: name + util: RandomAString + params: [1, 20] + - name: email + util: RandomAString + params: [1, 100] + - name: phone + util: RandomNstring + params: [10, 15] + - name: position + util: RandomAString + params: [1, 10] + - name: salary + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: project_id + util: CyclicSeqIntGen + params: [1,100000] + + afterLoad: + - ALTER TABLE employees_with_1_fk_1_to_1_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_10_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_10_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_100_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_100_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + - ALTER TABLE employees_with_1_fk_1_to_1000_cardinality add CONSTRAINT fk_project FOREIGN KEY (project_id) REFERENCES projects_with_1_ref_1_to_1000_cardinality(uid) ON DELETE CASCADE ON UPDATE CASCADE; + + executeRules: + + - workload: FK_G4_1_update_1_to_1_cardinality + run: + - name: FK_G4_1_update_1_to_1_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_2_delete_1_to_1_cardinality + run: + - name: FK_G4_2_delete_1_to_1_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_3_update_1_to_10_cardinality + run: + - name: FK_G4_3_update_1_to_10_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_10_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_4_delete_1_to_10_cardinality + run: + - name: FK_G4_4_delete_1_to_10_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_10_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_5_update_1_to_100_cardinality + run: + - name: FK_G4_5_update_1_to_100_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_100_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_6_delete_1_to_100_cardinality + run: + - name: FK_G4_6_delete_1_to_100_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_100_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_7_update_1_to_1000_cardinality + run: + - name: FK_G4_7_update_1_to_1000_cardinality + weight: 100 + queries: + - query: update projects_with_1_ref_1_to_1000_cardinality set uid=uid+100000 where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] + + - workload: FK_G4_8_delete_1_to_1000_cardinality + run: + - name: FK_G4_8_delete_1_to_1000_cardinality + weight: 100 + queries: + - query: delete from projects_with_1_ref_1_to_1000_cardinality where id=?; + bindings: + - util: PrimaryIntGen + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING10_join_groupby_orderby.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING10_join_groupby_orderby.yaml new file mode 100644 index 000000000..ee7a2d5ec --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING10_join_groupby_orderby.yaml @@ -0,0 +1,130 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{ endpoint }}:5432/postgres?sslmode=require +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_3(col_bigint_card2_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + loadRules: + - table: pkeyBigint1M_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING10_1_join_on_2tbls_withfilter_onpkey_grpby_1col + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_1), count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b where a.col_bigint_card1_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 GROUP BY a.col_bigint_card2_1 + + - workload: JOING10_2_join_on_3tbls_withfilter_onpkey_grpby_2col + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, a.col_bigint_card2_1, count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b,pkeyBigint1M_3 as c where a.col_bigint_card2_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_1=c.col_bigint_id_1 GROUP BY a.col_bigint_card2_1,a.col_bigint_card1_1 + + - workload: JOING10_3_join_on_2tbls_withfilter_onpkey_grpby_2col + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_1), count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b where a.col_bigint_card2_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 GROUP BY a.col_bigint_card2_1 + + + - workload: JOING10_4_join_on_2tbls_withfilter_onpkey_ordby_1col + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 + + - workload: JOING10_5_join_on_3tbls_withfilter_onpkey_ordby_1col + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 + + - workload: JOING10_6_join_on_2tbls_withfilter_onpkey_ordby_2col + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1,pkeyBigint1M_1.col_bigint_card2_1 + + - workload: JOING10_7_join_on_2tbls_withfilter_onpkey_ordby_desc_1col + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 DESC \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING11_join_groupby_orderby_multiple_loops.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING11_join_groupby_orderby_multiple_loops.yaml new file mode 100644 index 000000000..d3227812a --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING11_join_groupby_orderby_multiple_loops.yaml @@ -0,0 +1,168 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{ endpoint }}:5432/postgres?sslmode=require +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M1_1; + - DROP TABLE IF EXISTS pkeyBigint1M1_2; + - DROP TABLE IF EXISTS pkeyBigint1M1_3; + - DROP TABLE IF EXISTS pkeyBigint1Mr_1; + - DROP TABLE IF EXISTS pkeyBigint1Mr_2; + - CREATE TABLE pkeyBigint1M1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M1_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M1_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1Mr_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 )); + - CREATE TABLE pkeyBigint1Mr_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 )); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M1_1; + - DROP TABLE IF EXISTS pkeyBigint1M1_2; + - DROP TABLE IF EXISTS pkeyBigint1M1_3; + - DROP TABLE IF EXISTS pkeyBigint1Mr_1; + - DROP TABLE IF EXISTS pkeyBigint1Mr_2; + loadRules: + - table: pkeyBigint1M1_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: pkeyBigint1Mr_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING11_1_join_on_2tbls_withfilter_onpkey_grpby_1col_10k_loops + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_2_join_on_2tbls_withfilter_onpkey_grpby_1col_30k_loops + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<30000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_3_join_on_2tbls_withfilter_onpkey_grpby_ordby_1col_10k_loops + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 ORDER BY col_bigint_card2_1 + + - workload: JOING11_4_join_on_3tbls_withfilter_onpkey_grpby_ordby_1col_10k_loops + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b,pkeyBigint1M1_2 as c where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_1=c.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 order by a.col_bigint_card2_1 + + - workload: JOING11_5_join_on_2tbls_range_withfilter_onpkey_grpby_1col_10k_loops + run: + - name: join_on_pk_2tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1Mr_1 as a,pkeyBigint1Mr_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_6_join_on_2tbls_range_withfilter_onpkey_grpby_ordby_1col_10k_loops + run: + - name: join_on_pk_2tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1Mr_1 as a,pkeyBigint1Mr_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 ORDER BY col_bigint_card2_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING12_compate_indexscan_on_rangetbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING12_compate_indexscan_on_rangetbl.yaml new file mode 100644 index 000000000..833116eea --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING12_compate_indexscan_on_rangetbl.yaml @@ -0,0 +1,97 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{ endpoint }}:5432/postgres?sslmode=require +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS JoinG12_Rangetbl_1; + - DROP TABLE IF EXISTS JoinG12_Rangetbl_2; + - CREATE TABLE JoinG12_Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 )); + - CREATE INDEX ON JoinG12_Rangetbl_1(col_bigint_id_2); + - CREATE TABLE JoinG12_Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 )); + - CREATE INDEX ON JoinG12_Rangetbl_2(col_bigint_id_2); + cleanup: + - DROP TABLE IF EXISTS JoinG12_Rangetbl_1; + - DROP TABLE IF EXISTS JoinG12_Rangetbl2; + + loadRules: + - table: JoinG12_Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING12_2_indexscan_join_on_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_1, t2.col_bigint_id_1 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2>0 ; + + - workload: JOING12_3_indexonly_join_on_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_2, t2.col_bigint_id_2 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2>0 ; + + + - workload: JOING12_5_indexscan_join_on_skey_IN + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_1, t2.col_bigint_id_1 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ; + bindings: + split_min_max_for_count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING1_join_on_hash_partitioned_tbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING1_join_on_hash_partitioned_tbl.yaml new file mode 100644 index 000000000..55b56a8ac --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING1_join_on_hash_partitioned_tbl.yaml @@ -0,0 +1,137 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl_2; + - CREATE TABLE Hashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_3); + - CREATE TABLE Hashtbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_3); + cleanup: + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl2; + + loadRules: + - table: Hashtbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING1_1_join_on_pk_of_hash_tbl + customTags: customer=2 + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 + + - workload: JOING1_2_join_on_pk_of_hash_tbl_with_1_filter + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1<100001 + + - workload: JOING1_3_join_on_pk_of_hash_tbl_with_2_filter + customTags: customer=1 + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1<100001 and Hashtbl_2.col_bigint_id_1<100001 + + - workload: JOING1_4_join_on_hashidx_of_hash_tbl + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_2,Hashtbl_2.col_bigint_id_2 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_2=Hashtbl_2.col_bigint_id_2 + + - workload: JOING1_5_join_on_hashidx_of_hash_tbl_with_1_filter + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_2,Hashtbl_2.col_bigint_id_2 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_2=Hashtbl_2.col_bigint_id_2 where Hashtbl_1.col_bigint_id_2<100001 + + - workload: JOING1_6_join_on_rangeidx_of_hash_tbl + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_3,Hashtbl_2.col_bigint_id_3 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_3=Hashtbl_2.col_bigint_id_3 + + - workload: JOING1_7_join_on_rangeidx_of_hash_tbl_with_1_filter + customTags: customer=3 + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_3,Hashtbl_2.col_bigint_id_3 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_3=Hashtbl_2.col_bigint_id_3 where Hashtbl_1.col_bigint_id_3<100001 + + - workload: JOING1_8_join_on_nonidx_of_hash_tbl + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_4,Hashtbl_2.col_bigint_id_4 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_4=Hashtbl_2.col_bigint_id_4 + + - workload: JOING1_9_join_on_nonidx_of_hash_tbl_with_1_filter + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_4,Hashtbl_2.col_bigint_id_4 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_4=Hashtbl_2.col_bigint_id_4 where Hashtbl_1.col_bigint_id_4<100001 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING2_join_on_range_partitioned_tbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING2_join_on_range_partitioned_tbl.yaml new file mode 100644 index 000000000..6a9884384 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING2_join_on_range_partitioned_tbl.yaml @@ -0,0 +1,114 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl_2; + - CREATE TABLE Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_1(col_bigint_id_2); + - CREATE TABLE Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_2(col_bigint_id_2); + cleanup: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl2; + + loadRules: + - table: Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING2_2_join_on_pk_of_range_tbl_with_1_filter + customTags: customer=1 + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1<100001 + + - workload: JOING2_3_join_on_pk_of_range_tbl_with_2_filter + customTags: customer=2 + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1<100001 and Rangetbl_2.col_bigint_id_1<100001 + + - workload: JOING2_4_join_on_rangeidx_of_range_tbl + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 + + - workload: JOING2_5_join_on_rangeidx_of_range_tbl_with_1_filter + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 where Rangetbl_1.col_bigint_id_2<100001 + + + - workload: JOING2_6_join_on_nonidx_of_range_tbl + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_4,Rangetbl_2.col_bigint_id_4 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_4=Rangetbl_2.col_bigint_id_4 + + - workload: JOING2_7_join_on_nonidx_of_range_tbl_with_1_filter + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_4,Rangetbl_2.col_bigint_id_4 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_4=Rangetbl_2.col_bigint_id_4 where Rangetbl_1.col_bigint_id_4<100001 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING3_join_predicate_cases.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING3_join_predicate_cases.yaml new file mode 100644 index 000000000..a40bf5d8d --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING3_join_predicate_cases.yaml @@ -0,0 +1,195 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl_2; + - CREATE TABLE Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_1(col_bigint_id_2); + - CREATE TABLE Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_2(col_bigint_id_2); + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl_2; + - CREATE TABLE Hashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_3); + - CREATE TABLE Hashtbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_3); + cleanup: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl2; + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl2; + + + loadRules: + - table: Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: Hashtbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING3_1_join_on_pk_of_range_and_hash_tbl + customTags: customer=2 + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Hashtbl_1.col_bigint_id_1 from Rangetbl_1 join Hashtbl_1 on Rangetbl_1.col_bigint_id_1=Hashtbl_1.col_bigint_id_1 + + + - workload: JOING3_2_join_on_hashpk_IN_clause_1k + customTags: customer=6 + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_3_join_on_hashpk_IN_clause_10k + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_4_join_on_rangepk_IN_clause_1k + customTags: customer=3 + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_5_join_on_rangepk_IN_clause_10k + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_6_join_on_hashidx_IN_clause_10k + customTags: customer=1 + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_2,Hashtbl_2.col_bigint_id_2 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_2=Hashtbl_2.col_bigint_id_2 where Hashtbl_1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_7_join_on_rangeidx_IN_clause_10k + customTags: customer=2 + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 where Rangetbl_1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING4_datatype_impact_joins.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING4_datatype_impact_joins.yaml new file mode 100644 index 000000000..869bc91b5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING4_datatype_impact_joins.yaml @@ -0,0 +1,125 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyVarchar1001M_2; + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyVarchar1001M_1(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyVarchar1001M_2(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1)); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyVarchar1001M_2; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyVarchar1001M_ + count: 2 + rows: 1000000 + columns: + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING4_1_join_on_pk_of_bigint_datatype + run: + - name: join_on_pk_of_bigint_datatype + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1,pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1 join pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 + + + - workload: JOING4_2_join_on_pk_of_varchar_datatype + customTags: customer=1 + run: + - name: join_on_pk_of_bigint_datatype + weight: 100 + queries: + - query: select pkeyVarchar1001M_1.col_varchar100_pid_1,pkeyVarchar1001M_2.col_varchar100_pid_1 from pkeyVarchar1001M_1 join pkeyVarchar1001M_2 on pkeyVarchar1001M_1.col_varchar100_pid_1=pkeyVarchar1001M_2.col_varchar100_pid_1 diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING5_to_test_data_cardinality.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING5_to_test_data_cardinality.yaml new file mode 100644 index 000000000..7a905df80 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING5_to_test_data_cardinality.yaml @@ -0,0 +1,192 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 100*100 1000*10 +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE TABLE pkeyBigint10k_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + #Table3 1*10k 100*100 1000*10 + - table: pkeyBigint10k_ + count: 1 + rows: 10000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: JoinG5_1_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG5_2_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG5_3_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=7 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_4_1Mtbl_join_1Mtbl_two_conditions_seqscan_two_filters + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_5_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=1 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG5_6_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG5_7_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=8 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_8_1Mtbl_join_10ktbl_two_conditions_seqscan_two_filters + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING6_to_test_data_cardinality_skey.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING6_to_test_data_cardinality_skey.yaml new file mode 100644 index 000000000..8a5bceec1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING6_to_test_data_cardinality_skey.yaml @@ -0,0 +1,194 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 100*100 1000*10 +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10k_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1) + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1) + - CREATE INDEX ON pkeyBigint10k_1(col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1) + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + #Table3 1*10k 100*100 1000*10 + - table: pkeyBigint10k_ + count: 1 + rows: 10000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: JoinG6_1_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG6_2_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG6_3_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_4_1Mtbl_join_1Mtbl_two_conditions_seqscan_two_filters + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_5_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG6_6_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG6_7_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3 + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_8_1Mtbl_join_10ktbl_two_conditions_seqscan_two_filters + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING7_pkey_rangescan_join.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING7_pkey_rangescan_join.yaml new file mode 100644 index 000000000..343e0b58e --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING7_pkey_rangescan_join.yaml @@ -0,0 +1,101 @@ +#TEST FOR POSTGRES REGULAR TABLES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Join + Primary Key: Range + Join condition: Range Primary key. + Filter: range scan +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 10 rows +# Filter condition returns 1000 rows +# Filter condition returns 100000 rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_rangescan_join_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: JoinG7_pkey_rangescan_join_fetch_1row + run: + - name: pkey_rangescan_join_fetch_1row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<2; + - workload: JoinG7_pkey_rangescan_join_fetch_10row + customTags: customer=4 + run: + - name: pkey_rangescan_join_fetch_10row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<11; + - workload: JoinG7_pkey_rangescan_join_fetch_1000row + customTags: customer=6 + run: + - name: pkey_rangescan_join_fetch_1000row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<1001; + - workload: JoinG7_pkey_rangescan_join_fetch_100000row + customTags: customer=1 + run: + - name: pkey_rangescan_join_fetch_100000row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<100001; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING8_hash_merge_join.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING8_hash_merge_join.yaml new file mode 100644 index 000000000..7e902d1d9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING8_hash_merge_join.yaml @@ -0,0 +1,98 @@ +#GOAL12 HashJoin and Merge join tests +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 1000 rows . +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{ endpoint }}:5432/postgres?sslmode=require +username: {{ username }} +password: {{ password }} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 , col_bigint_1 )); + - CREATE TABLE pkey_rangescan_join_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 , col_bigint_1 )); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [ 10, 10 ] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [ 100, 100 ] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [ 500, 500 ] + executeRules: + - workload: JoinG8_hash_join_fetch_1row + customTags: customer=1 + run: + - name: hash_join_fetch_1row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_2=pkey_rangescan_join_2.col_bigint_2 and pkey_rangescan_join_1.col_bigint_id_1 = 2 and pkey_rangescan_join_2.col_bigint_id_1 = 2; + + - workload: JoinG8_hash_join_fetch_1000row + run: + - name: hash_join_fetch_1000row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_2=pkey_rangescan_join_2.col_bigint_2 and pkey_rangescan_join_1.col_bigint_id_1 < 1001 and pkey_rangescan_join_2.col_bigint_id_1 < 1001 ; + + - workload: JoinG8_merge_join_fetch_1row + run: + - name: merge_join_fetch_1row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1 < 2 and pkey_rangescan_join_2.col_bigint_id_1 < 2; + + - workload: JoinG8_merge_join_fetch_1000row + customTags: customer=4 + run: + - name: merge_join_fetch_1000row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1 < 1001 and pkey_rangescan_join_2.col_bigint_id_1 < 1001 ; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING9_cascadded_joins.yaml b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING9_cascadded_joins.yaml new file mode 100644 index 000000000..ff2c01305 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/postgres/JOING9_cascadded_joins.yaml @@ -0,0 +1,129 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{ endpoint }}:5432/postgres?sslmode=require +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_3(col_bigint_card2_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + loadRules: + - table: pkeyBigint1M_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING9_1_join_on_3tbls_withfilter_onpkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_2_join_on_3tbls_withfilter_onskey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card2_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_3_join_on_3tbls_withfilter_onpkey_subquery + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_2.col_bigint_card1_1 IN (select distinct(col_bigint_card1_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_4_join_on_3tbls_withfilter_onskey_subquery + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_2.col_bigint_card2_1 IN (select distinct(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_5_cascade_join_3tbls_withfilter_onpkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1 JOIN pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 JOIN pkeyBigint1M_3 on pkeyBigint1M_2.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) + + - workload: JOING9_6_join_on_pkey_2ndpart_3tbls_withfilter_onskey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1 JOIN pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 JOIN pkeyBigint1M_3 on pkeyBigint1M_2.col_bigint_card1_1=pkeyBigint1M_3.col_bigint_card1_1 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) + + - workload: JOING9_7_join_cte_on_3tbls_withfilter_onpkey_subquery + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: With v1 as (select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_2 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_2.col_bigint_card1_1 IN (select distinct(col_bigint_card1_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1), v2 as (select pkeyBigint1M_3.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_2 from pkeyBigint1M_1,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1) select v1.col_bigint_id_1, v1.col_bigint_id_2, v2.col_bigint_id_1, v2.col_bigint_id_2 from v1 join v2 on v1.col_bigint_id_1=v2.col_bigint_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING10_join_groupby_orderby.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING10_join_groupby_orderby.yaml new file mode 100644 index 000000000..d4057883f --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING10_join_groupby_orderby.yaml @@ -0,0 +1,139 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_3(col_bigint_card2_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + loadRules: + - table: pkeyBigint1M_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING10_1_join_on_2tbls_withfilter_onpkey_grpby_1col + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_1), count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b where a.col_bigint_card1_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 GROUP BY a.col_bigint_card2_1 + + - workload: JOING10_2_join_on_3tbls_withfilter_onpkey_grpby_2col + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, a.col_bigint_card2_1, count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b,pkeyBigint1M_3 as c where a.col_bigint_card2_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_1=c.col_bigint_id_1 GROUP BY a.col_bigint_card2_1,a.col_bigint_card1_1 + + - workload: JOING10_3_join_on_2tbls_withfilter_onpkey_grpby_2col + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_1), count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b where a.col_bigint_card2_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 GROUP BY a.col_bigint_card2_1 + + + - workload: JOING10_4_join_on_2tbls_withfilter_onpkey_ordby_1col + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 + + - workload: JOING10_5_join_on_3tbls_withfilter_onpkey_ordby_1col + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 + + - workload: JOING10_6_join_on_2tbls_withfilter_onpkey_ordby_2col + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1,pkeyBigint1M_1.col_bigint_card2_1 + + - workload: JOING10_7_join_on_2tbls_withfilter_onpkey_ordby_desc_1col + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 DESC \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING11_join_groupby_orderby_multiple_loops.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING11_join_groupby_orderby_multiple_loops.yaml new file mode 100644 index 000000000..27af85d18 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING11_join_groupby_orderby_multiple_loops.yaml @@ -0,0 +1,177 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M1_1; + - DROP TABLE IF EXISTS pkeyBigint1M1_2; + - DROP TABLE IF EXISTS pkeyBigint1M1_3; + - DROP TABLE IF EXISTS pkeyBigint1Mr_1; + - DROP TABLE IF EXISTS pkeyBigint1Mr_2; + - CREATE TABLE pkeyBigint1M1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M1_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M1_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1Mr_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 )); + - CREATE TABLE pkeyBigint1Mr_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 )); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M1_1; + - DROP TABLE IF EXISTS pkeyBigint1M1_2; + - DROP TABLE IF EXISTS pkeyBigint1M1_3; + - DROP TABLE IF EXISTS pkeyBigint1Mr_1; + - DROP TABLE IF EXISTS pkeyBigint1Mr_2; + loadRules: + - table: pkeyBigint1M1_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: pkeyBigint1Mr_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING11_1_join_on_2tbls_withfilter_onpkey_grpby_1col_10k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_2_join_on_2tbls_withfilter_onpkey_grpby_1col_30k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<30000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_3_join_on_2tbls_withfilter_onpkey_grpby_ordby_1col_10k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 ORDER BY col_bigint_card2_1 + + - workload: JOING11_4_join_on_3tbls_withfilter_onpkey_grpby_ordby_1col_10k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b,pkeyBigint1M1_2 as c where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_1=c.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 order by a.col_bigint_card2_1 + + - workload: JOING11_5_join_on_2tbls_range_withfilter_onpkey_grpby_1col_10k_loops + customTags: schematype=regular,partition=range,pkey=range,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_2tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1Mr_1 as a,pkeyBigint1Mr_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_6_join_on_2tbls_range_withfilter_onpkey_grpby_ordby_1col_10k_loops + customTags: schematype=regular,partition=range,pkey=range,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_2tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1Mr_1 as a,pkeyBigint1Mr_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 ORDER BY col_bigint_card2_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING12_compate_indexscan_on_rangetbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING12_compate_indexscan_on_rangetbl.yaml new file mode 100644 index 000000000..9b868ebd9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING12_compate_indexscan_on_rangetbl.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS JoinG12_Rangetbl_1; + - DROP TABLE IF EXISTS JoinG12_Rangetbl_2; + - CREATE TABLE JoinG12_Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON JoinG12_Rangetbl_1(col_bigint_id_2 ASC); + - CREATE TABLE JoinG12_Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON JoinG12_Rangetbl_2(col_bigint_id_2 ASC); + cleanup: + - DROP TABLE IF EXISTS JoinG12_Rangetbl_1; + - DROP TABLE IF EXISTS JoinG12_Rangetbl2; + + loadRules: + - table: JoinG12_Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING12_2_indexscan_join_on_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_1, t2.col_bigint_id_1 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2>0 ; + + - workload: JOING12_3_indexonly_join_on_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_2, t2.col_bigint_id_2 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2>0 ; + + + - workload: JOING12_5_indexscan_join_on_skey_IN + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_1, t2.col_bigint_id_1 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ; + bindings: + split_min_max_for_count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING2_join_on_range_partitioned_tbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING2_join_on_range_partitioned_tbl.yaml new file mode 100644 index 000000000..2da2429dd --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING2_join_on_range_partitioned_tbl.yaml @@ -0,0 +1,119 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl_2; + - CREATE TABLE Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_1(col_bigint_id_2); + - CREATE TABLE Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_2(col_bigint_id_2); + cleanup: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl2; + + loadRules: + - table: Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING2_2_join_on_pk_of_range_tbl_with_1_filter + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1<100001 + + - workload: JOING2_3_join_on_pk_of_range_tbl_with_2_filter + customTags: customer=2,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1<100001 and Rangetbl_2.col_bigint_id_1<100001 + + - workload: JOING2_4_join_on_rangeidx_of_range_tbl + customTags: schematype=colocated,partition=range,skey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 + + - workload: JOING2_5_join_on_rangeidx_of_range_tbl_with_1_filter + customTags: schematype=colocated,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 where Rangetbl_1.col_bigint_id_2<100001 + + - workload: JOING2_6_join_on_nonidx_of_range_tbl + customTags: schematype=colocated,partition=range,cardinality=single,projection=nonindexed,queryshape=join,joinon=nonindexed + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_4,Rangetbl_2.col_bigint_id_4 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_4=Rangetbl_2.col_bigint_id_4 + + - workload: JOING2_7_join_on_nonidx_of_range_tbl_with_1_filter + customTags: schematype=colocated,partition=range,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=join,joinon=nonindexed + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_4,Rangetbl_2.col_bigint_id_4 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_4=Rangetbl_2.col_bigint_id_4 where Rangetbl_1.col_bigint_id_4<100001 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING3_join_predicate_cases.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING3_join_predicate_cases.yaml new file mode 100644 index 000000000..0c59f1410 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING3_join_predicate_cases.yaml @@ -0,0 +1,203 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl_2; + - CREATE TABLE Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_1(col_bigint_id_2); + - CREATE TABLE Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Rangetbl_2(col_bigint_id_2); + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl_2; + - CREATE TABLE Hashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_3); + - CREATE TABLE Hashtbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_3); + cleanup: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl2; + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl2; + + + loadRules: + - table: Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: Hashtbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING3_1_join_on_pk_of_range_and_hash_tbl + customTags: customer=2,partition=range,pkey=asc,cardinality=single,projection=multiple,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Hashtbl_1.col_bigint_id_1 from Rangetbl_1 join Hashtbl_1 on Rangetbl_1.col_bigint_id_1=Hashtbl_1.col_bigint_id_1 + + + - workload: JOING3_2_join_on_hashpk_IN_clause_1k + customTags: customer=6,partition=range,pkey=asc,cardinality=single,projection=indexed,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + explain-plan-rc-validation: 1000 + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_3_join_on_hashpk_IN_clause_10k + customTags: partition=range,pkey=asc,cardinality=single,projection=indexed,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + explain-plan-rc-validation: 10000 + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_4_join_on_rangepk_IN_clause_1k + customTags: customer=3,partition=range,pkey=asc,cardinality=single,projection=indexed,filteron=hashpkey,filtertype=IN,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + explain-plan-rc-validation: 1000 + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_5_join_on_rangepk_IN_clause_10k + customTags: partition=range,pkey=asc,cardinality=single,projection=indexed,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + explain-plan-rc-validation: 10000 + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_6_join_on_hashidx_IN_clause_10k + customTags: customer=1,partition=range,skey=asc,cardinality=single,projection=indexed,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_2,Hashtbl_2.col_bigint_id_2 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_2=Hashtbl_2.col_bigint_id_2 where Hashtbl_1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_7_join_on_rangeidx_IN_clause_10k + customTags: customer=2,partition=range,skey=asc,cardinality=single,projection=indexed,filteron=rangeskey,filtertype=IN,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 where Rangetbl_1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING4_datatype_impact_joins.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING4_datatype_impact_joins.yaml new file mode 100644 index 000000000..2b0ffa832 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING4_datatype_impact_joins.yaml @@ -0,0 +1,129 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyVarchar1001M_2; + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyVarchar1001M_1(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyVarchar1001M_2(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1)); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyVarchar1001M_2; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyVarchar1001M_ + count: 2 + rows: 1000000 + columns: + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + - workload: JOING4_1_join_on_pk_of_bigint_datatype + customTags: schematype=colocated,partition=range,pkey=asc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_bigint_datatype + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1,pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1 join pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 + + + - workload: JOING4_2_join_on_pk_of_varchar_datatype + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,columndatatype=varchar,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_bigint_datatype + weight: 100 + queries: + - query: select pkeyVarchar1001M_1.col_varchar100_pid_1,pkeyVarchar1001M_2.col_varchar100_pid_1 from pkeyVarchar1001M_1 join pkeyVarchar1001M_2 on pkeyVarchar1001M_1.col_varchar100_pid_1=pkeyVarchar1001M_2.col_varchar100_pid_1 diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING5_to_test_data_cardinality.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING5_to_test_data_cardinality.yaml new file mode 100644 index 000000000..8db80d3a4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING5_to_test_data_cardinality.yaml @@ -0,0 +1,197 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 100*100 1000*10 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1 ASC, col_bigint_card2_1 ASC, col_bigint_card3_1 ASC, col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1 ASC, col_bigint_card2_1 ASC, col_bigint_card3_1 ASC, col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint10k_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1 ASC, col_bigint_card2_1 ASC, col_bigint_card3_1 ASC, col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + #Table3 1*10k 100*100 1000*10 + - table: pkeyBigint10k_ + count: 1 + rows: 10000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: JoinG5_1_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG5_2_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG5_3_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=7,schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_4_1Mtbl_join_1Mtbl_two_conditions_seqscan_two_filters + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_5_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG5_6_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG5_7_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=8,schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_8_1Mtbl_join_10ktbl_two_conditions_seqscan_two_filters + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING6_to_test_data_cardinality_skey.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING6_to_test_data_cardinality_skey.yaml new file mode 100644 index 000000000..02455cd7f --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING6_to_test_data_cardinality_skey.yaml @@ -0,0 +1,200 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 100*100 1000*10 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint10k_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card1_1 ASC,col_bigint_card2_1 ASC,col_bigint_card3_1 ASC) + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card1_1 ASC,col_bigint_card2_1 ASC,col_bigint_card3_1 ASC) + - CREATE INDEX ON pkeyBigint10k_1(col_bigint_card1_1 ASC,col_bigint_card2_1 ASC,col_bigint_card3_1 ASC) + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + #Table3 1*10k 100*100 1000*10 + - table: pkeyBigint10k_ + count: 1 + rows: 10000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: JoinG6_1_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=colocated,partition=range,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG6_2_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: schematype=colocated,partition=range,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG6_3_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=colocated,partition=range,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_4_1Mtbl_join_1Mtbl_two_conditions_seqscan_two_filters + customTags: schematype=colocated,partition=range,skey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangeskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangeskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_5_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=colocated,partition=range,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG6_6_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: schematype=colocated,partition=range,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG6_7_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=colocated,partition=range,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_8_1Mtbl_join_10ktbl_two_conditions_seqscan_two_filters + customTags: schematype=colocated,partition=range,skey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangeskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangeskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING7_pkey_rangescan_join.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING7_pkey_rangescan_join.yaml new file mode 100644 index 000000000..e13d6e6e4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING7_pkey_rangescan_join.yaml @@ -0,0 +1,104 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Join + Primary Key: Range + Join condition: Range Primary key. + Filter: range scan +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 10 rows +# Filter condition returns 1000 rows +# Filter condition returns 100000 rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkey_rangescan_join_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: JoinG7_pkey_rangescan_join_fetch_1row + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_1row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<2; + - workload: JoinG7_pkey_rangescan_join_fetch_10row + customTags: customer=4,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_10row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<11; + - workload: JoinG7_pkey_rangescan_join_fetch_1000row + customTags: customer=6,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_1000row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<1001; + - workload: JoinG7_pkey_rangescan_join_fetch_100000row + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_100000row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<100001; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING8_hash_merge_join.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING8_hash_merge_join.yaml new file mode 100644 index 000000000..9937b0599 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING8_hash_merge_join.yaml @@ -0,0 +1,103 @@ +#GOAL12 HashJoin and Merge join tests +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 1000 rows . +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_1 ASC)); + - CREATE TABLE pkey_rangescan_join_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: JoinG8_hash_join_fetch_1row + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: hash_join_fetch_1row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_2=pkey_rangescan_join_2.col_bigint_2 and pkey_rangescan_join_1.col_bigint_id_1 = 2 and pkey_rangescan_join_2.col_bigint_id_1 = 2 ; + + - workload: JoinG8_hash_join_fetch_1000row + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: hash_join_fetch_1000row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_2=pkey_rangescan_join_2.col_bigint_2 and pkey_rangescan_join_1.col_bigint_id_1 < 1001 and pkey_rangescan_join_2.col_bigint_id_1 < 1001 ; + + - workload: JoinG8_merge_join_fetch_1row + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: merge_join_fetch_1row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1 < 2 and pkey_rangescan_join_2.col_bigint_id_1 < 2; + + + - workload: JoinG8_merge_join_fetch_1000row + customTags: customer=4,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: merge_join_fetch_1000row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1 < 1001 and pkey_rangescan_join_2.col_bigint_id_1 < 1001 ; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING9_cascadded_joins.yaml b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING9_cascadded_joins.yaml new file mode 100644 index 000000000..266a8025e --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yb_colocated/JOING9_cascadded_joins.yaml @@ -0,0 +1,138 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_3(col_bigint_card2_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + loadRules: + - table: pkeyBigint1M_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING9_1_join_on_3tbls_withfilter_onpkey + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=rangepkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_2_join_on_3tbls_withfilter_onskey + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=join,joinon=rangepkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card2_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_3_join_on_3tbls_withfilter_onpkey_subquery + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=subquery,queryshape=join,joinon=rangepkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_2.col_bigint_card1_1 IN (select distinct(col_bigint_card1_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_4_join_on_3tbls_withfilter_onskey_subquery + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=subquery,queryshape=join,joinon=rangepkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_2.col_bigint_card2_1 IN (select distinct(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_5_cascade_join_3tbls_withfilter_onpkey + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=rangepkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1 JOIN pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 JOIN pkeyBigint1M_3 on pkeyBigint1M_2.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) + + - workload: JOING9_6_join_on_pkey_2ndpart_3tbls_withfilter_onskey + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=mixedpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1 JOIN pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 JOIN pkeyBigint1M_3 on pkeyBigint1M_2.col_bigint_card1_1=pkeyBigint1M_3.col_bigint_card1_1 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) + + - workload: JOING9_7_join_cte_on_3tbls_withfilter_onpkey_subquery + customTags: schematype=colocated,partition=range,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=subquery,queryshape=join,joinon=mixedpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: With v1 as (select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_2 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_2.col_bigint_card1_1 IN (select distinct(col_bigint_card1_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1), v2 as (select pkeyBigint1M_3.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_2 from pkeyBigint1M_1,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1) select v1.col_bigint_id_1, v1.col_bigint_id_2, v2.col_bigint_id_1, v2.col_bigint_id_2 from v1 join v2 on v1.col_bigint_id_1=v2.col_bigint_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING10_join_groupby_orderby.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING10_join_groupby_orderby.yaml new file mode 100644 index 000000000..b187e7a5e --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING10_join_groupby_orderby.yaml @@ -0,0 +1,138 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_3(col_bigint_card2_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + loadRules: + - table: pkeyBigint1M_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING10_1_join_on_2tbls_withfilter_onpkey_grpby_1col + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_1), count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b where a.col_bigint_card1_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 GROUP BY a.col_bigint_card2_1 + + - workload: JOING10_2_join_on_3tbls_withfilter_onpkey_grpby_2col + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, a.col_bigint_card2_1, count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b,pkeyBigint1M_3 as c where a.col_bigint_card2_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_1=c.col_bigint_id_1 GROUP BY a.col_bigint_card2_1,a.col_bigint_card1_1 + + - workload: JOING10_3_join_on_2tbls_withfilter_onpkey_grpby_2col + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_1), count(b.col_bigint_id_1) from pkeyBigint1M_1 as a,pkeyBigint1M_2 as b where a.col_bigint_card2_1 in (1000500) and a.col_bigint_id_1=b.col_bigint_id_1 GROUP BY a.col_bigint_card2_1 + + + - workload: JOING10_4_join_on_2tbls_withfilter_onpkey_ordby_1col + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 + + - workload: JOING10_5_join_on_3tbls_withfilter_onpkey_ordby_1col + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 + + - workload: JOING10_6_join_on_2tbls_withfilter_onpkey_ordby_2col + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1,pkeyBigint1M_1.col_bigint_card2_1 + + - workload: JOING10_7_join_on_2tbls_withfilter_onpkey_ordby_desc_1col + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projectition=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 ORDER BY pkeyBigint1M_1.col_bigint_card1_1 DESC \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING11_join_groupby_orderby_multiple_loops.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING11_join_groupby_orderby_multiple_loops.yaml new file mode 100644 index 000000000..d7130de58 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING11_join_groupby_orderby_multiple_loops.yaml @@ -0,0 +1,176 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M1_1; + - DROP TABLE IF EXISTS pkeyBigint1M1_2; + - DROP TABLE IF EXISTS pkeyBigint1M1_3; + - DROP TABLE IF EXISTS pkeyBigint1Mr_1; + - DROP TABLE IF EXISTS pkeyBigint1Mr_2; + - CREATE TABLE pkeyBigint1M1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M1_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M1_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1Mr_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint1Mr_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M1_1; + - DROP TABLE IF EXISTS pkeyBigint1M1_2; + - DROP TABLE IF EXISTS pkeyBigint1M1_3; + - DROP TABLE IF EXISTS pkeyBigint1Mr_1; + - DROP TABLE IF EXISTS pkeyBigint1Mr_2; + loadRules: + - table: pkeyBigint1M1_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: pkeyBigint1Mr_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING11_1_join_on_2tbls_withfilter_onpkey_grpby_1col_10k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_2_join_on_2tbls_withfilter_onpkey_grpby_1col_30k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<30000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_3_join_on_2tbls_withfilter_onpkey_grpby_ordby_1col_10k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 ORDER BY col_bigint_card2_1 + + - workload: JOING11_4_join_on_3tbls_withfilter_onpkey_grpby_ordby_1col_10k_loops + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1M1_1 as a,pkeyBigint1M1_2 as b,pkeyBigint1M1_2 as c where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_1=c.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 order by a.col_bigint_card2_1 + + - workload: JOING11_5_join_on_2tbls_range_withfilter_onpkey_grpby_1col_10k_loops + customTags: schematype=regular,partition=range,pkey=range,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_2tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1Mr_1 as a,pkeyBigint1Mr_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 + + - workload: JOING11_6_join_on_2tbls_range_withfilter_onpkey_grpby_ordby_1col_10k_loops + customTags: schematype=regular,partition=range,pkey=range,cardinality=single,projectition=indexed,queryshape=join,joinon=pkey + run: + - name: join_on_pk_2tbl + weight: 100 + queries: + - query: select a.col_bigint_card2_1, count(a.col_bigint_id_2) from pkeyBigint1Mr_1 as a,pkeyBigint1Mr_2 as b where a.col_bigint_id_1=b.col_bigint_id_1 and a.col_bigint_id_2<10000 GROUP BY a.col_bigint_card2_1 ORDER BY col_bigint_card2_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING12_compate_indexscan_on_rangetbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING12_compate_indexscan_on_rangetbl.yaml new file mode 100644 index 000000000..e7b133349 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING12_compate_indexscan_on_rangetbl.yaml @@ -0,0 +1,99 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS JoinG12_Rangetbl_1; + - DROP TABLE IF EXISTS JoinG12_Rangetbl_2; + - CREATE TABLE JoinG12_Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON JoinG12_Rangetbl_1(col_bigint_id_2 ASC); + - CREATE TABLE JoinG12_Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON JoinG12_Rangetbl_2(col_bigint_id_2 ASC); + cleanup: + - DROP TABLE IF EXISTS JoinG12_Rangetbl_1; + - DROP TABLE IF EXISTS JoinG12_Rangetbl2; + + loadRules: + - table: JoinG12_Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING12_2_indexscan_join_on_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_1, t2.col_bigint_id_1 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2>0 ; + + - workload: JOING12_3_indexonly_join_on_skey + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_2, t2.col_bigint_id_2 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2>0 ; + + + - workload: JOING12_5_indexscan_join_on_skey_IN + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: SELECT t1.col_bigint_id_1, t2.col_bigint_id_1 FROM JoinG12_Rangetbl_1 AS t1 JOIN JoinG12_Rangetbl_2 AS t2 ON t1.col_bigint_id_2 = t2.col_bigint_id_2 where t1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ; + bindings: + split_min_max_for_count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING1_join_on_hash_partitioned_tbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING1_join_on_hash_partitioned_tbl.yaml new file mode 100644 index 000000000..22f784838 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING1_join_on_hash_partitioned_tbl.yaml @@ -0,0 +1,144 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl_2; + - CREATE TABLE Hashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_3 ASC); + - CREATE TABLE Hashtbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_3 ASC); + cleanup: + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl2; + + loadRules: + - table: Hashtbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING1_1_join_on_pk_of_hash_tbl + customTags: customer=2,partition=hash,pkey=hash,cardinality=single,projection=indexed,queryshape=join,joinon=hashpkey + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 + + - workload: JOING1_2_join_on_pk_of_hash_tbl_with_1_filter + customTags: partition=hash,pkey=hash,cardinality=single,projection=indexed,filteron=hashpkey,filtercount=one,filtertype=comparision,queryshape=join,joinon=hashpkey + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1<100001 + + - workload: JOING1_3_join_on_pk_of_hash_tbl_with_2_filter + customTags: customer=1,partition=hash,pkey=hash,cardinality=single,projection=indexed,filteron=hashpkey,filtercount=two,filtertype=comparision,queryshape=join,joinon=hashpkey + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1<100001 and Hashtbl_2.col_bigint_id_1<100001 + + - workload: JOING1_4_join_on_hashidx_of_hash_tbl + customTags: partition=hash,skey=hash,cardinality=single,projection=indexed,queryshape=join,joinon=hashskey + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_2,Hashtbl_2.col_bigint_id_2 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_2=Hashtbl_2.col_bigint_id_2 + + - workload: JOING1_5_join_on_hashidx_of_hash_tbl_with_1_filter + customTags: partition=hash,skey=hash,cardinality=single,projection=indexed,filteron=hashskey,filtercount=one,filtertype=comparision,queryshape=join,joinon=hashskey + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_2,Hashtbl_2.col_bigint_id_2 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_2=Hashtbl_2.col_bigint_id_2 where Hashtbl_1.col_bigint_id_2<100001 + + - workload: JOING1_6_join_on_rangeidx_of_hash_tbl + customTags: partition=hash,skey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_3,Hashtbl_2.col_bigint_id_3 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_3=Hashtbl_2.col_bigint_id_3 + + - workload: JOING1_7_join_on_rangeidx_of_hash_tbl_with_1_filter + customTags: customer=3,partition=hash,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_3,Hashtbl_2.col_bigint_id_3 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_3=Hashtbl_2.col_bigint_id_3 where Hashtbl_1.col_bigint_id_3<100001 + + - workload: JOING1_8_join_on_nonidx_of_hash_tbl + customTags: partition=hash,cardinality=single,projection=nonindexed,queryshape=join,joinon=nonindexed + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_4,Hashtbl_2.col_bigint_id_4 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_4=Hashtbl_2.col_bigint_id_4 + + - workload: JOING1_9_join_on_nonidx_of_hash_tbl_with_1_filter + customTags: partition=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=join,joinon=nonindexed + run: + - name: join_on_pk_of_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_4,Hashtbl_2.col_bigint_id_4 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_4=Hashtbl_2.col_bigint_id_4 where Hashtbl_1.col_bigint_id_4<100001 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING2_join_on_range_partitioned_tbl.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING2_join_on_range_partitioned_tbl.yaml new file mode 100644 index 000000000..f6f25a714 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING2_join_on_range_partitioned_tbl.yaml @@ -0,0 +1,119 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl_2; + - CREATE TABLE Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Rangetbl_1(col_bigint_id_2 ASC); + - CREATE TABLE Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Rangetbl_2(col_bigint_id_2 ASC); + cleanup: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl2; + + loadRules: + - table: Rangetbl_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING2_2_join_on_pk_of_range_tbl_with_1_filter + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1<100001 + + - workload: JOING2_3_join_on_pk_of_range_tbl_with_2_filter + customTags: customer=2,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1<100001 and Rangetbl_2.col_bigint_id_1<100001 + + - workload: JOING2_4_join_on_rangeidx_of_range_tbl + customTags: schematype=regular,partition=range,skey=asc,cardinality=single,projection=indexed,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 + + - workload: JOING2_5_join_on_rangeidx_of_range_tbl_with_1_filter + customTags: schematype=regular,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 where Rangetbl_1.col_bigint_id_2<100001 + + + - workload: JOING2_6_join_on_nonidx_of_range_tbl + customTags: schematype=regular,partition=range,cardinality=single,projection=nonindexed,queryshape=join,joinon=nonindexed + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_4,Rangetbl_2.col_bigint_id_4 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_4=Rangetbl_2.col_bigint_id_4 + + - workload: JOING2_7_join_on_nonidx_of_range_tbl_with_1_filter + customTags: schematype=regular,partition=range,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=join,joinon=nonindexed + run: + - name: join_on_pk_of_range_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_4,Rangetbl_2.col_bigint_id_4 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_4=Rangetbl_2.col_bigint_id_4 where Rangetbl_1.col_bigint_id_4<100001 diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING3_join_predicate_cases.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING3_join_predicate_cases.yaml new file mode 100644 index 000000000..1d1cd0566 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING3_join_predicate_cases.yaml @@ -0,0 +1,207 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl_2; + - DROP TABLE IF EXISTS Rangetbl_3; + - CREATE TABLE Rangetbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Rangetbl_1(col_bigint_id_2 ASC); + - CREATE TABLE Rangetbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Rangetbl_2(col_bigint_id_2 ASC); + - CREATE TABLE Rangetbl_3(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Rangetbl_3(col_bigint_id_2 ASC); + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl_2; + - DROP TABLE IF EXISTS Hashtbl_3; + - CREATE TABLE Hashtbl_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_1(col_bigint_id_3 ASC); + - CREATE TABLE Hashtbl_2(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_2(col_bigint_id_3 ASC); + - CREATE TABLE Hashtbl_3(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Hashtbl_3(col_bigint_id_2); + - CREATE INDEX ON Hashtbl_3(col_bigint_id_3 ASC); + cleanup: + - DROP TABLE IF EXISTS Rangetbl_1; + - DROP TABLE IF EXISTS Rangetbl2; + - DROP TABLE IF EXISTS Rangetbl_3; + - DROP TABLE IF EXISTS Hashtbl_1; + - DROP TABLE IF EXISTS Hashtbl2; + - DROP TABLE IF EXISTS Hashtbl_3; + + loadRules: + - table: Rangetbl_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: Hashtbl_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 2 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING3_1_join_on_pk_of_range_and_hash_tbl + customTags: customer=2,partition=joinmixed,pkey=joinmixed,cardinality=single,projection=multiple,filteron=none,queryshape=join,joinon=mixedpkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Hashtbl_1.col_bigint_id_1 from Rangetbl_1 join Hashtbl_1 on Rangetbl_1.col_bigint_id_1=Hashtbl_1.col_bigint_id_1 + + + - workload: JOING3_2_join_on_hashpk_IN_clause_1k + customTags: customer=6,partition=hash,pkey=hash,cardinality=single,projection=indexed,filteron=hashpkey,filtertype=IN,queryshape=join,joinon=hashpkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_3_join_on_hashpk_IN_clause_10k + customTags: partition=hash,pkey=hash,cardinality=single,projection=indexed,filteron=hashpkey,filtertype=IN,queryshape=join,joinon=hashpkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_1,Hashtbl_2.col_bigint_id_1 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_1=Hashtbl_2.col_bigint_id_1 where Hashtbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_4_join_on_rangepk_IN_clause_1k + customTags: customer=3,partition=range,pkey=range,cardinality=single,projection=indexed,filteron=hashpkey,filtertype=IN,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_5_join_on_rangepk_IN_clause_10k + customTags: partition=range,pkey=range,cardinality=single,projection=indexed,filteron=hashpkey,filtertype=IN,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_1,Rangetbl_2.col_bigint_id_1 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_1=Rangetbl_2.col_bigint_id_1 where Rangetbl_1.col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + + - workload: JOING3_6_join_on_hashidx_IN_clause_10k + customTags: customer=1,partition=hash,skey=hash,cardinality=single,projection=indexed,filteron=hashskey,filtertype=IN,queryshape=join,joinon=hashskey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Hashtbl_1.col_bigint_id_2,Hashtbl_2.col_bigint_id_2 from Hashtbl_1 join Hashtbl_2 on Hashtbl_1.col_bigint_id_2=Hashtbl_2.col_bigint_id_2 where Hashtbl_1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] + + - workload: JOING3_7_join_on_rangeidx_IN_clause_10k + customTags: customer=2,partition=range,skey=asc,cardinality=single,projection=indexed,filteron=rangeskey,filtertype=IN,queryshape=join,joinon=rangeskey + run: + - name: join_on_pk_of_range_and_hash_tbl + weight: 100 + queries: + - query: select Rangetbl_1.col_bigint_id_2,Rangetbl_2.col_bigint_id_2 from Rangetbl_1 join Rangetbl_2 on Rangetbl_1.col_bigint_id_2=Rangetbl_2.col_bigint_id_2 where Rangetbl_1.col_bigint_id_2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING4_datatype_impact_joins.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING4_datatype_impact_joins.yaml new file mode 100644 index 000000000..a9c6e446a --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING4_datatype_impact_joins.yaml @@ -0,0 +1,126 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 600 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyVarchar1001M_2; + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyVarchar1001M_1(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1 ASC)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyVarchar1001M_2(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1 ASC)); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyVarchar1001M_2; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyVarchar1001M_ + count: 2 + rows: 1000000 + columns: + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING4_1_join_on_pk_of_bigint_datatype + customTags: schematype=regular,partition=range,pkey=asc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_bigint_datatype + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1,pkeyBigint1M_2.col_bigint_id_1 from pkeyBigint1M_1 join pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 + + - workload: JOING4_2_join_on_pk_of_varchar_datatype + customTags: customer=1,schematype=regular,partition=range,pkey=asc,columndatatype=varchar,cardinality=single,projection=indexed,queryshape=join,joinon=rangepkey + run: + - name: join_on_pk_of_bigint_datatype + weight: 100 + queries: + - query: select pkeyVarchar1001M_1.col_varchar100_pid_1,pkeyVarchar1001M_2.col_varchar100_pid_1 from pkeyVarchar1001M_1 join pkeyVarchar1001M_2 on pkeyVarchar1001M_1.col_varchar100_pid_1=pkeyVarchar1001M_2.col_varchar100_pid_1 diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING5_to_test_data_cardinality.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING5_to_test_data_cardinality.yaml new file mode 100644 index 000000000..0391416ed --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING5_to_test_data_cardinality.yaml @@ -0,0 +1,196 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 100*100 1000*10 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE TABLE pkeyBigint10k_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + #Table3 1*10k 100*100 1000*10 + - table: pkeyBigint10k_ + count: 1 + rows: 10000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: JoinG5_1_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedpkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG5_2_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedpkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG5_3_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=7,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedpkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_4_1Mtbl_join_1Mtbl_two_conditions_seqscan_two_filters + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_5_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=1,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedpkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG5_6_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedpkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG5_7_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=8,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedpkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedpkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG5_8_1Mtbl_join_10ktbl_two_conditions_seqscan_two_filters + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangepkey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING6_to_test_data_cardinality_skey.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING6_to_test_data_cardinality_skey.yaml new file mode 100644 index 000000000..632d115cd --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING6_to_test_data_cardinality_skey.yaml @@ -0,0 +1,199 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 +#Table2 1*1L 1000*100 10000*10 +#Table3 1*10k 100*100 1000*10 +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10k_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1) + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1) + - CREATE INDEX ON pkeyBigint10k_1(col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1) + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint10k_1; + + loadRules: + - table: pkeyBigint1M_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + #Table3 1*10k 100*100 1000*10 + - table: pkeyBigint10k_ + count: 1 + rows: 10000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: JoinG6_1_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=regular,partition=hash,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG6_2_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: schematype=regular,partition=hash,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG6_3_1Mtbl_join_1Mtbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=regular,partition=hash,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_4_1Mtbl_join_1Mtbl_two_conditions_seqscan_two_filters + customTags: schematype=regular,partition=hash,skey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangeskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangeskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint1M_2 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_5_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=regular,partition=hash,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + - workload: JoinG6_6_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: schematype=regular,partition=hash,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card3_1 in (1000058); + + - workload: JoinG6_7_1Mtbl_join_10ktbl_two_conditions_indexscan_two_filters + customTags: customer=3,schematype=regular,partition=hash,skey=composite,cardinality=multiple,projection=all,filtercount=two,filteron=mixedskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=mixedskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card1_1=b.col_bigint_card1_1 and a.col_bigint_card2_1=b.col_bigint_card2_1 where b.col_bigint_card1_1=1000000 and b.col_bigint_card2_1 in (1000058); + + + - workload: JoinG6_8_1Mtbl_join_10ktbl_two_conditions_seqscan_two_filters + customTags: schematype=regular,partition=hash,skey=asc,cardinality=multiple,projection=all,filtercount=two,filteron=rangeskey,filtertype=pointselect,filterother=IN,queryshape=join,joinon=rangeskey,joinconditions=two + run: + - name: hashtbl_index_scan_using_sec_index + weight: 100 + queries: + - query: select * from pkeyBigint1M_1 as a join pkeyBigint10k_1 as b on a.col_bigint_card2_1=b.col_bigint_card2_1 and a.col_bigint_card3_1=b.col_bigint_card3_1 where b.col_bigint_card2_1 in (1000058); diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING7_pkey_rangescan_join.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING7_pkey_rangescan_join.yaml new file mode 100644 index 000000000..2558e1a57 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING7_pkey_rangescan_join.yaml @@ -0,0 +1,103 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Join + Primary Key: Range + Join condition: Range Primary key. + Filter: range scan +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 10 rows +# Filter condition returns 1000 rows +# Filter condition returns 100000 rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkey_rangescan_join_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: JoinG7_pkey_rangescan_join_fetch_1row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_1row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<2; + - workload: JoinG7_pkey_rangescan_join_fetch_10row + customTags: customer=4,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_10row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<11; + - workload: JoinG7_pkey_rangescan_join_fetch_1000row + customTags: customer=6,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_1000row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<1001; + - workload: JoinG7_pkey_rangescan_join_fetch_100000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=join,joinon=rangepkey + run: + - name: pkey_rangescan_join_fetch_100000row_test + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1<100001; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING8_hash_merge_join.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING8_hash_merge_join.yaml new file mode 100644 index 000000000..ec89e570a --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING8_hash_merge_join.yaml @@ -0,0 +1,102 @@ +#GOAL12 HashJoin and Merge join tests +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 1000 rows . +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_1 ASC)); + - CREATE TABLE pkey_rangescan_join_2(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC, col_bigint_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: JoinG8_hash_join_fetch_1row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: hash_join_fetch_1row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_2=pkey_rangescan_join_2.col_bigint_2 and pkey_rangescan_join_1.col_bigint_id_1 = 2 and pkey_rangescan_join_2.col_bigint_id_1 = 2 ; + + - workload: JoinG8_hash_join_fetch_1000row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: hash_join_fetch_1000row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_2=pkey_rangescan_join_2.col_bigint_2 and pkey_rangescan_join_1.col_bigint_id_1 < 1001 and pkey_rangescan_join_2.col_bigint_id_1 < 1001 ; + + - workload: JoinG8_merge_join_fetch_1row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: merge_join_fetch_1row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1 < 2 and pkey_rangescan_join_2.col_bigint_id_1 < 2; + + + - workload: JoinG8_merge_join_fetch_1000row + customTags: customer=4,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=two,filteron=rangepkey,filtertype=pointselect,queryshape=join,joinon=rangepkey,joinconditions=one + run: + - name: merge_join_fetch_1000row + weight: 100 + queries: + - query: select pkey_rangescan_join_1.col_bigint_id_1 from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_bigint_id_1=pkey_rangescan_join_2.col_bigint_id_1 and pkey_rangescan_join_1.col_bigint_id_1 < 1001 and pkey_rangescan_join_2.col_bigint_id_1 < 1001 ; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING9_cascadded_joins.yaml b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING9_cascadded_joins.yaml new file mode 100644 index 000000000..b3bd88be7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/join_workloads/yugabyte/JOING9_cascadded_joins.yaml @@ -0,0 +1,137 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{ username }} +password: {{ password }} +isolation: TRANSACTION_REPEATABLE_READ +batchsize: 128 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE TABLE pkeyBigint1M_3(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1, col_bigint_id_2, col_bigint_id_3, col_bigint_card1_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_2(col_bigint_card2_1); + - CREATE INDEX ON pkeyBigint1M_3(col_bigint_card2_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyBigint1M_2; + - DROP TABLE IF EXISTS pkeyBigint1M_3; + loadRules: + - table: pkeyBigint1M_ + count: 3 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000 ] + - name: col_bigint_card2_ + count: 1 + util: OneNumberFromArray + params: [ 1000001,1000002,1000003,1000004,1000005,1000006,1000007,1000008,1000009,1000010,1000011,1000012,1000013,1000014,1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030,1000031,1000032,1000033,1000034,1000035,1000036,1000037,1000038,1000039,1000040,1000041,1000042,1000043,1000044,1000045,1000046,1000047,1000048,1000049,1000050,1000051,1000052,1000053,1000054,1000055,1000056,1000057,1000058,1000059,1000060,1000061,1000062,1000063,1000064,1000065,1000066,1000067,1000068,1000069,1000070,1000071,1000072,1000073,1000074,1000075,1000076,1000077,1000078,1000079,1000080,1000081,1000082,1000083,1000084,1000085,1000086,1000087,1000088,1000089,1000090,1000091,1000092,1000093,1000094,1000095,1000096,1000097,1000098,1000099,1000100,1000101,1000102,1000103,1000104,1000105,1000106,1000107,1000108,1000109,1000110,1000111,1000112,1000113,1000114,1000115,1000116,1000117,1000118,1000119,1000120,1000121,1000122,1000123,1000124,1000125,1000126,1000127,1000128,1000129,1000130,1000131,1000132,1000133,1000134,1000135,1000136,1000137,1000138,1000139,1000140,1000141,1000142,1000143,1000144,1000145,1000146,1000147,1000148,1000149,1000150,1000151,1000152,1000153,1000154,1000155,1000156,1000157,1000158,1000159,1000160,1000161,1000162,1000163,1000164,1000165,1000166,1000167,1000168,1000169,1000170,1000171,1000172,1000173,1000174,1000175,1000176,1000177,1000178,1000179,1000180,1000181,1000182,1000183,1000184,1000185,1000186,1000187,1000188,1000189,1000190,1000191,1000192,1000193,1000194,1000195,1000196,1000197,1000198,1000199,1000200,1000201,1000202,1000203,1000204,1000205,1000206,1000207,1000208,1000209,1000210,1000211,1000212,1000213,1000214,1000215,1000216,1000217,1000218,1000219,1000220,1000221,1000222,1000223,1000224,1000225,1000226,1000227,1000228,1000229,1000230,1000231,1000232,1000233,1000234,1000235,1000236,1000237,1000238,1000239,1000240,1000241,1000242,1000243,1000244,1000245,1000246,1000247,1000248,1000249,1000250,1000251,1000252,1000253,1000254,1000255,1000256,1000257,1000258,1000259,1000260,1000261,1000262,1000263,1000264,1000265,1000266,1000267,1000268,1000269,1000270,1000271,1000272,1000273,1000274,1000275,1000276,1000277,1000278,1000279,1000280,1000281,1000282,1000283,1000284,1000285,1000286,1000287,1000288,1000289,1000290,1000291,1000292,1000293,1000294,1000295,1000296,1000297,1000298,1000299,1000300,1000301,1000302,1000303,1000304,1000305,1000306,1000307,1000308,1000309,1000310,1000311,1000312,1000313,1000314,1000315,1000316,1000317,1000318,1000319,1000320,1000321,1000322,1000323,1000324,1000325,1000326,1000327,1000328,1000329,1000330,1000331,1000332,1000333,1000334,1000335,1000336,1000337,1000338,1000339,1000340,1000341,1000342,1000343,1000344,1000345,1000346,1000347,1000348,1000349,1000350,1000351,1000352,1000353,1000354,1000355,1000356,1000357,1000358,1000359,1000360,1000361,1000362,1000363,1000364,1000365,1000366,1000367,1000368,1000369,1000370,1000371,1000372,1000373,1000374,1000375,1000376,1000377,1000378,1000379,1000380,1000381,1000382,1000383,1000384,1000385,1000386,1000387,1000388,1000389,1000390,1000391,1000392,1000393,1000394,1000395,1000396,1000397,1000398,1000399,1000400,1000401,1000402,1000403,1000404,1000405,1000406,1000407,1000408,1000409,1000410,1000411,1000412,1000413,1000414,1000415,1000416,1000417,1000418,1000419,1000420,1000421,1000422,1000423,1000424,1000425,1000426,1000427,1000428,1000429,1000430,1000431,1000432,1000433,1000434,1000435,1000436,1000437,1000438,1000439,1000440,1000441,1000442,1000443,1000444,1000445,1000446,1000447,1000448,1000449,1000450,1000451,1000452,1000453,1000454,1000455,1000456,1000457,1000458,1000459,1000460,1000461,1000462,1000463,1000464,1000465,1000466,1000467,1000468,1000469,1000470,1000471,1000472,1000473,1000474,1000475,1000476,1000477,1000478,1000479,1000480,1000481,1000482,1000483,1000484,1000485,1000486,1000487,1000488,1000489,1000490,1000491,1000492,1000493,1000494,1000495,1000496,1000497,1000498,1000499,1000500,1000501,1000502,1000503,1000504,1000505,1000506,1000507,1000508,1000509,1000510,1000511,1000512,1000513,1000514,1000515,1000516,1000517,1000518,1000519,1000520,1000521,1000522,1000523,1000524,1000525,1000526,1000527,1000528,1000529,1000530,1000531,1000532,1000533,1000534,1000535,1000536,1000537,1000538,1000539,1000540,1000541,1000542,1000543,1000544,1000545,1000546,1000547,1000548,1000549,1000550,1000551,1000552,1000553,1000554,1000555,1000556,1000557,1000558,1000559,1000560,1000561,1000562,1000563,1000564,1000565,1000566,1000567,1000568,1000569,1000570,1000571,1000572,1000573,1000574,1000575,1000576,1000577,1000578,1000579,1000580,1000581,1000582,1000583,1000584,1000585,1000586,1000587,1000588,1000589,1000590,1000591,1000592,1000593,1000594,1000595,1000596,1000597,1000598,1000599,1000600,1000601,1000602,1000603,1000604,1000605,1000606,1000607,1000608,1000609,1000610,1000611,1000612,1000613,1000614,1000615,1000616,1000617,1000618,1000619,1000620,1000621,1000622,1000623,1000624,1000625,1000626,1000627,1000628,1000629,1000630,1000631,1000632,1000633,1000634,1000635,1000636,1000637,1000638,1000639,1000640,1000641,1000642,1000643,1000644,1000645,1000646,1000647,1000648,1000649,1000650,1000651,1000652,1000653,1000654,1000655,1000656,1000657,1000658,1000659,1000660,1000661,1000662,1000663,1000664,1000665,1000666,1000667,1000668,1000669,1000670,1000671,1000672,1000673,1000674,1000675,1000676,1000677,1000678,1000679,1000680,1000681,1000682,1000683,1000684,1000685,1000686,1000687,1000688,1000689,1000690,1000691,1000692,1000693,1000694,1000695,1000696,1000697,1000698,1000699,1000700,1000701,1000702,1000703,1000704,1000705,1000706,1000707,1000708,1000709,1000710,1000711,1000712,1000713,1000714,1000715,1000716,1000717,1000718,1000719,1000720,1000721,1000722,1000723,1000724,1000725,1000726,1000727,1000728,1000729,1000730,1000731,1000732,1000733,1000734,1000735,1000736,1000737,1000738,1000739,1000740,1000741,1000742,1000743,1000744,1000745,1000746,1000747,1000748,1000749,1000750,1000751,1000752,1000753,1000754,1000755,1000756,1000757,1000758,1000759,1000760,1000761,1000762,1000763,1000764,1000765,1000766,1000767,1000768,1000769,1000770,1000771,1000772,1000773,1000774,1000775,1000776,1000777,1000778,1000779,1000780,1000781,1000782,1000783,1000784,1000785,1000786,1000787,1000788,1000789,1000790,1000791,1000792,1000793,1000794,1000795,1000796,1000797,1000798,1000799,1000800,1000801,1000802,1000803,1000804,1000805,1000806,1000807,1000808,1000809,1000810,1000811,1000812,1000813,1000814,1000815,1000816,1000817,1000818,1000819,1000820,1000821,1000822,1000823,1000824,1000825,1000826,1000827,1000828,1000829,1000830,1000831,1000832,1000833,1000834,1000835,1000836,1000837,1000838,1000839,1000840,1000841,1000842,1000843,1000844,1000845,1000846,1000847,1000848,1000849,1000850,1000851,1000852,1000853,1000854,1000855,1000856,1000857,1000858,1000859,1000860,1000861,1000862,1000863,1000864,1000865,1000866,1000867,1000868,1000869,1000870,1000871,1000872,1000873,1000874,1000875,1000876,1000877,1000878,1000879,1000880,1000881,1000882,1000883,1000884,1000885,1000886,1000887,1000888,1000889,1000890,1000891,1000892,1000893,1000894,1000895,1000896,1000897,1000898,1000899,1000900,1000901,1000902,1000903,1000904,1000905,1000906,1000907,1000908,1000909,1000910,1000911,1000912,1000913,1000914,1000915,1000916,1000917,1000918,1000919,1000920,1000921,1000922,1000923,1000924,1000925,1000926,1000927,1000928,1000929,1000930,1000931,1000932,1000933,1000934,1000935,1000936,1000937,1000938,1000939,1000940,1000941,1000942,1000943,1000944,1000945,1000946,1000947,1000948,1000949,1000950,1000951,1000952,1000953,1000954,1000955,1000956,1000957,1000958,1000959,1000960,1000961,1000962,1000963,1000964,1000965,1000966,1000967,1000968,1000969,1000970,1000971,1000972,1000973,1000974,1000975,1000976,1000977,1000978,1000979,1000980,1000981,1000982,1000983,1000984,1000985,1000986,1000987,1000988,1000989,1000990,1000991,1000992,1000993,1000994,1000995,1000996,1000997,1000998,1000999,1001000,2000002,2000003,2000004,2000005,2000006,2000007,2000008,2000009,2000010,2000011,2000012,2000013,2000014,2000015,2000016,2000017,2000018,2000019,2000020,2000021,2000022,2000023,2000024,2000025,2000026,2000027,2000028,2000029,2000030,2000031,2000032,2000033,2000034,2000035,2000036,2000037,2000038,2000039,2000040,2000041,2000042,2000043,2000044,2000045,2000046,2000047,2000048,2000049,2000050,2000051,2000052,2000053,2000054,2000055,2000056,2000057,2000058,2000059,2000060,2000061,2000062,2000063,2000064,2000065,2000066,2000067,2000068,2000069,2000070,2000071,2000072,2000073,2000074,2000075,2000076,2000077,2000078,2000079,2000080,2000081,2000082,2000083,2000084,2000085,2000086,2000087,2000088,2000089,2000090,2000091,2000092,2000093,2000094,2000095,2000096,2000097,2000098,2000099,2000100,2000101,2000102,2000103,2000104,2000105,2000106,2000107,2000108,2000109,2000110,2000111,2000112,2000113,2000114,2000115,2000116,2000117,2000118,2000119,2000120,2000121,2000122,2000123,2000124,2000125,2000126,2000127,2000128,2000129,2000130,2000131,2000132,2000133,2000134,2000135,2000136,2000137,2000138,2000139,2000140,2000141,2000142,2000143,2000144,2000145,2000146,2000147,2000148,2000149,2000150,2000151,2000152,2000153,2000154,2000155,2000156,2000157,2000158,2000159,2000160,2000161,2000162,2000163,2000164,2000165,2000166,2000167,2000168,2000169,2000170,2000171,2000172,2000173,2000174,2000175,2000176,2000177,2000178,2000179,2000180,2000181,2000182,2000183,2000184,2000185,2000186,2000187,2000188,2000189,2000190,2000191,2000192,2000193,2000194,2000195,2000196,2000197,2000198,2000199,2000200,2000201,2000202,2000203,2000204,2000205,2000206,2000207,2000208,2000209,2000210,2000211,2000212,2000213,2000214,2000215,2000216,2000217,2000218,2000219,2000220,2000221,2000222,2000223,2000224,2000225,2000226,2000227,2000228,2000229,2000230,2000231,2000232,2000233,2000234,2000235,2000236,2000237,2000238,2000239,2000240,2000241,2000242,2000243,2000244,2000245,2000246,2000247,2000248,2000249,2000250,2000251,2000252,2000253,2000254,2000255,2000256,2000257,2000258,2000259,2000260,2000261,2000262,2000263,2000264,2000265,2000266,2000267,2000268,2000269,2000270,2000271,2000272,2000273,2000274,2000275,2000276,2000277,2000278,2000279,2000280,2000281,2000282,2000283,2000284,2000285,2000286,2000287,2000288,2000289,2000290,2000291,2000292,2000293,2000294,2000295,2000296,2000297,2000298,2000299,2000300,2000301,2000302,2000303,2000304,2000305,2000306,2000307,2000308,2000309,2000310,2000311,2000312,2000313,2000314,2000315,2000316,2000317,2000318,2000319,2000320,2000321,2000322,2000323,2000324,2000325,2000326,2000327,2000328,2000329,2000330,2000331,2000332,2000333,2000334,2000335,2000336,2000337,2000338,2000339,2000340,2000341,2000342,2000343,2000344,2000345,2000346,2000347,2000348,2000349,2000350,2000351,2000352,2000353,2000354,2000355,2000356,2000357,2000358,2000359,2000360,2000361,2000362,2000363,2000364,2000365,2000366,2000367,2000368,2000369,2000370,2000371,2000372,2000373,2000374,2000375,2000376,2000377,2000378,2000379,2000380,2000381,2000382,2000383,2000384,2000385,2000386,2000387,2000388,2000389,2000390,2000391,2000392,2000393,2000394,2000395,2000396,2000397,2000398,2000399,2000400,2000401,2000402,2000403,2000404,2000405,2000406,2000407,2000408,2000409,2000410,2000411,2000412,2000413,2000414,2000415,2000416,2000417,2000418,2000419,2000420,2000421,2000422,2000423,2000424,2000425,2000426,2000427,2000428,2000429,2000430,2000431,2000432,2000433,2000434,2000435,2000436,2000437,2000438,2000439,2000440,2000441,2000442,2000443,2000444,2000445,2000446,2000447,2000448,2000449,2000450,2000451,2000452,2000453,2000454,2000455,2000456,2000457,2000458,2000459,2000460,2000461,2000462,2000463,2000464,2000465,2000466,2000467,2000468,2000469,2000470,2000471,2000472,2000473,2000474,2000475,2000476,2000477,2000478,2000479,2000480,2000481,2000482,2000483,2000484,2000485,2000486,2000487,2000488,2000489,2000490,2000491,2000492,2000493,2000494,2000495,2000496,2000497,2000498,2000499,2000500,2000501,2000502,2000503,2000504,2000505,2000506,2000507,2000508,2000509,2000510,2000511,2000512,2000513,2000514,2000515,2000516,2000517,2000518,2000519,2000520,2000521,2000522,2000523,2000524,2000525,2000526,2000527,2000528,2000529,2000530,2000531,2000532,2000533,2000534,2000535,2000536,2000537,2000538,2000539,2000540,2000541,2000542,2000543,2000544,2000545,2000546,2000547,2000548,2000549,2000550,2000551,2000552,2000553,2000554,2000555,2000556,2000557,2000558,2000559,2000560,2000561,2000562,2000563,2000564,2000565,2000566,2000567,2000568,2000569,2000570,2000571,2000572,2000573,2000574,2000575,2000576,2000577,2000578,2000579,2000580,2000581,2000582,2000583,2000584,2000585,2000586,2000587,2000588,2000589,2000590,2000591,2000592,2000593,2000594,2000595,2000596,2000597,2000598,2000599,2000600,2000601,2000602,2000603,2000604,2000605,2000606,2000607,2000608,2000609,2000610,2000611,2000612,2000613,2000614,2000615,2000616,2000617,2000618,2000619,2000620,2000621,2000622,2000623,2000624,2000625,2000626,2000627,2000628,2000629,2000630,2000631,2000632,2000633,2000634,2000635,2000636,2000637,2000638,2000639,2000640,2000641,2000642,2000643,2000644,2000645,2000646,2000647,2000648,2000649,2000650,2000651,2000652,2000653,2000654,2000655,2000656,2000657,2000658,2000659,2000660,2000661,2000662,2000663,2000664,2000665,2000666,2000667,2000668,2000669,2000670,2000671,2000672,2000673,2000674,2000675,2000676,2000677,2000678,2000679,2000680,2000681,2000682,2000683,2000684,2000685,2000686,2000687,2000688,2000689,2000690,2000691,2000692,2000693,2000694,2000695,2000696,2000697,2000698,2000699,2000700,2000701,2000702,2000703,2000704,2000705,2000706,2000707,2000708,2000709,2000710,2000711,2000712,2000713,2000714,2000715,2000716,2000717,2000718,2000719,2000720,2000721,2000722,2000723,2000724,2000725,2000726,2000727,2000728,2000729,2000730,2000731,2000732,2000733,2000734,2000735,2000736,2000737,2000738,2000739,2000740,2000741,2000742,2000743,2000744,2000745,2000746,2000747,2000748,2000749,2000750,2000751,2000752,2000753,2000754,2000755,2000756,2000757,2000758,2000759,2000760,2000761,2000762,2000763,2000764,2000765,2000766,2000767,2000768,2000769,2000770,2000771,2000772,2000773,2000774,2000775,2000776,2000777,2000778,2000779,2000780,2000781,2000782,2000783,2000784,2000785,2000786,2000787,2000788,2000789,2000790,2000791,2000792,2000793,2000794,2000795,2000796,2000797,2000798,2000799,2000800,2000801,2000802,2000803,2000804,2000805,2000806,2000807,2000808,2000809,2000810,2000811,2000812,2000813,2000814,2000815,2000816,2000817,2000818,2000819,2000820,2000821,2000822,2000823,2000824,2000825,2000826,2000827,2000828,2000829,2000830,2000831,2000832,2000833,2000834,2000835,2000836,2000837,2000838,2000839,2000840,2000841,2000842,2000843,2000844,2000845,2000846,2000847,2000848,2000849,2000850,2000851,2000852,2000853,2000854,2000855,2000856,2000857,2000858,2000859,2000860,2000861,2000862,2000863,2000864,2000865,2000866,2000867,2000868,2000869,2000870,2000871,2000872,2000873,2000874,2000875,2000876,2000877,2000878,2000879,2000880,2000881,2000882,2000883,2000884,2000885,2000886,2000887,2000888,2000889,2000890,2000891,2000892,2000893,2000894,2000895,2000896,2000897,2000898,2000899,2000900,2000901,2000902,2000903,2000904,2000905,2000906,2000907,2000908,2000909,2000910,2000911,2000912,2000913,2000914,2000915,2000916,2000917,2000918,2000919,2000920,2000921,2000922,2000923,2000924,2000925,2000926,2000927,2000928,2000929,2000930,2000931,2000932,2000933,2000934,2000935,2000936,2000937,2000938,2000939,2000940,2000941,2000942,2000943,2000944,2000945,2000946,2000947,2000948,2000949,2000950,2000951,2000952,2000953,2000954,2000955,2000956,2000957,2000958,2000959,2000960,2000961,2000962,2000963,2000964,2000965,2000966,2000967,2000968,2000969,2000970,2000971,2000972,2000973,2000974,2000975,2000976,2000977,2000978,2000979,2000980,2000981,2000982,2000983,2000984,2000985,2000986,2000987,2000988,2000989,2000990,2000991,2000992,2000993,2000994,2000995,2000996,2000997,2000998,2000999,2001000,3000001,3000002,3000003,3000004,3000005,3000006,3000007,3000008,3000009,3000010,3000011,3000012,3000013,3000014,3000015,3000016,3000017,3000018,3000019,3000020,3000021,3000022,3000023,3000024,3000025,3000026,3000027,3000028,3000029,3000030,3000031,3000032,3000033,3000034,3000035,3000036,3000037,3000038,3000039,3000040,3000041,3000042,3000043,3000044,3000045,3000046,3000047,3000048,3000049,3000050,3000051,3000052,3000053,3000054,3000055,3000056,3000057,3000058,3000059,3000060,3000061,3000062,3000063,3000064,3000065,3000066,3000067,3000068,3000069,3000070,3000071,3000072,3000073,3000074,3000075,3000076,3000077,3000078,3000079,3000080,3000081,3000082,3000083,3000084,3000085,3000086,3000087,3000088,3000089,3000090,3000091,3000092,3000093,3000094,3000095,3000096,3000097,3000098,3000099,3000100,3000101,3000102,3000103,3000104,3000105,3000106,3000107,3000108,3000109,3000110,3000111,3000112,3000113,3000114,3000115,3000116,3000117,3000118,3000119,3000120,3000121,3000122,3000123,3000124,3000125,3000126,3000127,3000128,3000129,3000130,3000131,3000132,3000133,3000134,3000135,3000136,3000137,3000138,3000139,3000140,3000141,3000142,3000143,3000144,3000145,3000146,3000147,3000148,3000149,3000150,3000151,3000152,3000153,3000154,3000155,3000156,3000157,3000158,3000159,3000160,3000161,3000162,3000163,3000164,3000165,3000166,3000167,3000168,3000169,3000170,3000171,3000172,3000173,3000174,3000175,3000176,3000177,3000178,3000179,3000180,3000181,3000182,3000183,3000184,3000185,3000186,3000187,3000188,3000189,3000190,3000191,3000192,3000193,3000194,3000195,3000196,3000197,3000198,3000199,3000200,3000201,3000202,3000203,3000204,3000205,3000206,3000207,3000208,3000209,3000210,3000211,3000212,3000213,3000214,3000215,3000216,3000217,3000218,3000219,3000220,3000221,3000222,3000223,3000224,3000225,3000226,3000227,3000228,3000229,3000230,3000231,3000232,3000233,3000234,3000235,3000236,3000237,3000238,3000239,3000240,3000241,3000242,3000243,3000244,3000245,3000246,3000247,3000248,3000249,3000250,3000251,3000252,3000253,3000254,3000255,3000256,3000257,3000258,3000259,3000260,3000261,3000262,3000263,3000264,3000265,3000266,3000267,3000268,3000269,3000270,3000271,3000272,3000273,3000274,3000275,3000276,3000277,3000278,3000279,3000280,3000281,3000282,3000283,3000284,3000285,3000286,3000287,3000288,3000289,3000290,3000291,3000292,3000293,3000294,3000295,3000296,3000297,3000298,3000299,3000300,3000301,3000302,3000303,3000304,3000305,3000306,3000307,3000308,3000309,3000310,3000311,3000312,3000313,3000314,3000315,3000316,3000317,3000318,3000319,3000320,3000321,3000322,3000323,3000324,3000325,3000326,3000327,3000328,3000329,3000330,3000331,3000332,3000333,3000334,3000335,3000336,3000337,3000338,3000339,3000340,3000341,3000342,3000343,3000344,3000345,3000346,3000347,3000348,3000349,3000350,3000351,3000352,3000353,3000354,3000355,3000356,3000357,3000358,3000359,3000360,3000361,3000362,3000363,3000364,3000365,3000366,3000367,3000368,3000369,3000370,3000371,3000372,3000373,3000374,3000375,3000376,3000377,3000378,3000379,3000380,3000381,3000382,3000383,3000384,3000385,3000386,3000387,3000388,3000389,3000390,3000391,3000392,3000393,3000394,3000395,3000396,3000397,3000398,3000399,3000400,3000401,3000402,3000403,3000404,3000405,3000406,3000407,3000408,3000409,3000410,3000411,3000412,3000413,3000414,3000415,3000416,3000417,3000418,3000419,3000420,3000421,3000422,3000423,3000424,3000425,3000426,3000427,3000428,3000429,3000430,3000431,3000432,3000433,3000434,3000435,3000436,3000437,3000438,3000439,3000440,3000441,3000442,3000443,3000444,3000445,3000446,3000447,3000448,3000449,3000450,3000451,3000452,3000453,3000454,3000455,3000456,3000457,3000458,3000459,3000460,3000461,3000462,3000463,3000464,3000465,3000466,3000467,3000468,3000469,3000470,3000471,3000472,3000473,3000474,3000475,3000476,3000477,3000478,3000479,3000480,3000481,3000482,3000483,3000484,3000485,3000486,3000487,3000488,3000489,3000490,3000491,3000492,3000493,3000494,3000495,3000496,3000497,3000498,3000499,3000500,3000501,3000502,3000503,3000504,3000505,3000506,3000507,3000508,3000509,3000510,3000511,3000512,3000513,3000514,3000515,3000516,3000517,3000518,3000519,3000520,3000521,3000522,3000523,3000524,3000525,3000526,3000527,3000528,3000529,3000530,3000531,3000532,3000533,3000534,3000535,3000536,3000537,3000538,3000539,3000540,3000541,3000542,3000543,3000544,3000545,3000546,3000547,3000548,3000549,3000550,3000551,3000552,3000553,3000554,3000555,3000556,3000557,3000558,3000559,3000560,3000561,3000562,3000563,3000564,3000565,3000566,3000567,3000568,3000569,3000570,3000571,3000572,3000573,3000574,3000575,3000576,3000577,3000578,3000579,3000580,3000581,3000582,3000583,3000584,3000585,3000586,3000587,3000588,3000589,3000590,3000591,3000592,3000593,3000594,3000595,3000596,3000597,3000598,3000599,3000600,3000601,3000602,3000603,3000604,3000605,3000606,3000607,3000608,3000609,3000610,3000611,3000612,3000613,3000614,3000615,3000616,3000617,3000618,3000619,3000620,3000621,3000622,3000623,3000624,3000625,3000626,3000627,3000628,3000629,3000630,3000631,3000632,3000633,3000634,3000635,3000636,3000637,3000638,3000639,3000640,3000641,3000642,3000643,3000644,3000645,3000646,3000647,3000648,3000649,3000650,3000651,3000652,3000653,3000654,3000655,3000656,3000657,3000658,3000659,3000660,3000661,3000662,3000663,3000664,3000665,3000666,3000667,3000668,3000669,3000670,3000671,3000672,3000673,3000674,3000675,3000676,3000677,3000678,3000679,3000680,3000681,3000682,3000683,3000684,3000685,3000686,3000687,3000688,3000689,3000690,3000691,3000692,3000693,3000694,3000695,3000696,3000697,3000698,3000699,3000700,3000701,3000702,3000703,3000704,3000705,3000706,3000707,3000708,3000709,3000710,3000711,3000712,3000713,3000714,3000715,3000716,3000717,3000718,3000719,3000720,3000721,3000722,3000723,3000724,3000725,3000726,3000727,3000728,3000729,3000730,3000731,3000732,3000733,3000734,3000735,3000736,3000737,3000738,3000739,3000740,3000741,3000742,3000743,3000744,3000745,3000746,3000747,3000748,3000749,3000750,3000751,3000752,3000753,3000754,3000755,3000756,3000757,3000758,3000759,3000760,3000761,3000762,3000763,3000764,3000765,3000766,3000767,3000768,3000769,3000770,3000771,3000772,3000773,3000774,3000775,3000776,3000777,3000778,3000779,3000780,3000781,3000782,3000783,3000784,3000785,3000786,3000787,3000788,3000789,3000790,3000791,3000792,3000793,3000794,3000795,3000796,3000797,3000798,3000799,3000800,3000801,3000802,3000803,3000804,3000805,3000806,3000807,3000808,3000809,3000810,3000811,3000812,3000813,3000814,3000815,3000816,3000817,3000818,3000819,3000820,3000821,3000822,3000823,3000824,3000825,3000826,3000827,3000828,3000829,3000830,3000831,3000832,3000833,3000834,3000835,3000836,3000837,3000838,3000839,3000840,3000841,3000842,3000843,3000844,3000845,3000846,3000847,3000848,3000849,3000850,3000851,3000852,3000853,3000854,3000855,3000856,3000857,3000858,3000859,3000860,3000861,3000862,3000863,3000864,3000865,3000866,3000867,3000868,3000869,3000870,3000871,3000872,3000873,3000874,3000875,3000876,3000877,3000878,3000879,3000880,3000881,3000882,3000883,3000884,3000885,3000886,3000887,3000888,3000889,3000890,3000891,3000892,3000893,3000894,3000895,3000896,3000897,3000898,3000899,3000900,3000901,3000902,3000903,3000904,3000905,3000906,3000907,3000908,3000909,3000910,3000911,3000912,3000913,3000914,3000915,3000916,3000917,3000918,3000919,3000920,3000921,3000922,3000923,3000924,3000925,3000926,3000927,3000928,3000929,3000930,3000931,3000932,3000933,3000934,3000935,3000936,3000937,3000938,3000939,3000940,3000941,3000942,3000943,3000944,3000945,3000946,3000947,3000948,3000949,3000950,3000951,3000952,3000953,3000954,3000955,3000956,3000957,3000958,3000959,3000960,3000961,3000962,3000963,3000964,3000965,3000966,3000967,3000968,3000969,3000970,3000971,3000972,3000973,3000974,3000975,3000976,3000977,3000978,3000979,3000980,3000981,3000982,3000983,3000984,3000985,3000986,3000987,3000988,3000989,3000990,3000991,3000992,3000993,3000994,3000995,3000996,3000997,3000998,3000999,3001000,4000001,4000002,4000003,4000004,4000005,4000006,4000007,4000008,4000009,4000010,4000011,4000012,4000013,4000014,4000015,4000016,4000017,4000018,4000019,4000020,4000021,4000022,4000023,4000024,4000025,4000026,4000027,4000028,4000029,4000030,4000031,4000032,4000033,4000034,4000035,4000036,4000037,4000038,4000039,4000040,4000041,4000042,4000043,4000044,4000045,4000046,4000047,4000048,4000049,4000050,4000051,4000052,4000053,4000054,4000055,4000056,4000057,4000058,4000059,4000060,4000061,4000062,4000063,4000064,4000065,4000066,4000067,4000068,4000069,4000070,4000071,4000072,4000073,4000074,4000075,4000076,4000077,4000078,4000079,4000080,4000081,4000082,4000083,4000084,4000085,4000086,4000087,4000088,4000089,4000090,4000091,4000092,4000093,4000094,4000095,4000096,4000097,4000098,4000099,4000100,4000101,4000102,4000103,4000104,4000105,4000106,4000107,4000108,4000109,4000110,4000111,4000112,4000113,4000114,4000115,4000116,4000117,4000118,4000119,4000120,4000121,4000122,4000123,4000124,4000125,4000126,4000127,4000128,4000129,4000130,4000131,4000132,4000133,4000134,4000135,4000136,4000137,4000138,4000139,4000140,4000141,4000142,4000143,4000144,4000145,4000146,4000147,4000148,4000149,4000150,4000151,4000152,4000153,4000154,4000155,4000156,4000157,4000158,4000159,4000160,4000161,4000162,4000163,4000164,4000165,4000166,4000167,4000168,4000169,4000170,4000171,4000172,4000173,4000174,4000175,4000176,4000177,4000178,4000179,4000180,4000181,4000182,4000183,4000184,4000185,4000186,4000187,4000188,4000189,4000190,4000191,4000192,4000193,4000194,4000195,4000196,4000197,4000198,4000199,4000200,4000201,4000202,4000203,4000204,4000205,4000206,4000207,4000208,4000209,4000210,4000211,4000212,4000213,4000214,4000215,4000216,4000217,4000218,4000219,4000220,4000221,4000222,4000223,4000224,4000225,4000226,4000227,4000228,4000229,4000230,4000231,4000232,4000233,4000234,4000235,4000236,4000237,4000238,4000239,4000240,4000241,4000242,4000243,4000244,4000245,4000246,4000247,4000248,4000249,4000250,4000251,4000252,4000253,4000254,4000255,4000256,4000257,4000258,4000259,4000260,4000261,4000262,4000263,4000264,4000265,4000266,4000267,4000268,4000269,4000270,4000271,4000272,4000273,4000274,4000275,4000276,4000277,4000278,4000279,4000280,4000281,4000282,4000283,4000284,4000285,4000286,4000287,4000288,4000289,4000290,4000291,4000292,4000293,4000294,4000295,4000296,4000297,4000298,4000299,4000300,4000301,4000302,4000303,4000304,4000305,4000306,4000307,4000308,4000309,4000310,4000311,4000312,4000313,4000314,4000315,4000316,4000317,4000318,4000319,4000320,4000321,4000322,4000323,4000324,4000325,4000326,4000327,4000328,4000329,4000330,4000331,4000332,4000333,4000334,4000335,4000336,4000337,4000338,4000339,4000340,4000341,4000342,4000343,4000344,4000345,4000346,4000347,4000348,4000349,4000350,4000351,4000352,4000353,4000354,4000355,4000356,4000357,4000358,4000359,4000360,4000361,4000362,4000363,4000364,4000365,4000366,4000367,4000368,4000369,4000370,4000371,4000372,4000373,4000374,4000375,4000376,4000377,4000378,4000379,4000380,4000381,4000382,4000383,4000384,4000385,4000386,4000387,4000388,4000389,4000390,4000391,4000392,4000393,4000394,4000395,4000396,4000397,4000398,4000399,4000400,4000401,4000402,4000403,4000404,4000405,4000406,4000407,4000408,4000409,4000410,4000411,4000412,4000413,4000414,4000415,4000416,4000417,4000418,4000419,4000420,4000421,4000422,4000423,4000424,4000425,4000426,4000427,4000428,4000429,4000430,4000431,4000432,4000433,4000434,4000435,4000436,4000437,4000438,4000439,4000440,4000441,4000442,4000443,4000444,4000445,4000446,4000447,4000448,4000449,4000450,4000451,4000452,4000453,4000454,4000455,4000456,4000457,4000458,4000459,4000460,4000461,4000462,4000463,4000464,4000465,4000466,4000467,4000468,4000469,4000470,4000471,4000472,4000473,4000474,4000475,4000476,4000477,4000478,4000479,4000480,4000481,4000482,4000483,4000484,4000485,4000486,4000487,4000488,4000489,4000490,4000491,4000492,4000493,4000494,4000495,4000496,4000497,4000498,4000499,4000500,4000501,4000502,4000503,4000504,4000505,4000506,4000507,4000508,4000509,4000510,4000511,4000512,4000513,4000514,4000515,4000516,4000517,4000518,4000519,4000520,4000521,4000522,4000523,4000524,4000525,4000526,4000527,4000528,4000529,4000530,4000531,4000532,4000533,4000534,4000535,4000536,4000537,4000538,4000539,4000540,4000541,4000542,4000543,4000544,4000545,4000546,4000547,4000548,4000549,4000550,4000551,4000552,4000553,4000554,4000555,4000556,4000557,4000558,4000559,4000560,4000561,4000562,4000563,4000564,4000565,4000566,4000567,4000568,4000569,4000570,4000571,4000572,4000573,4000574,4000575,4000576,4000577,4000578,4000579,4000580,4000581,4000582,4000583,4000584,4000585,4000586,4000587,4000588,4000589,4000590,4000591,4000592,4000593,4000594,4000595,4000596,4000597,4000598,4000599,4000600,4000601,4000602,4000603,4000604,4000605,4000606,4000607,4000608,4000609,4000610,4000611,4000612,4000613,4000614,4000615,4000616,4000617,4000618,4000619,4000620,4000621,4000622,4000623,4000624,4000625,4000626,4000627,4000628,4000629,4000630,4000631,4000632,4000633,4000634,4000635,4000636,4000637,4000638,4000639,4000640,4000641,4000642,4000643,4000644,4000645,4000646,4000647,4000648,4000649,4000650,4000651,4000652,4000653,4000654,4000655,4000656,4000657,4000658,4000659,4000660,4000661,4000662,4000663,4000664,4000665,4000666,4000667,4000668,4000669,4000670,4000671,4000672,4000673,4000674,4000675,4000676,4000677,4000678,4000679,4000680,4000681,4000682,4000683,4000684,4000685,4000686,4000687,4000688,4000689,4000690,4000691,4000692,4000693,4000694,4000695,4000696,4000697,4000698,4000699,4000700,4000701,4000702,4000703,4000704,4000705,4000706,4000707,4000708,4000709,4000710,4000711,4000712,4000713,4000714,4000715,4000716,4000717,4000718,4000719,4000720,4000721,4000722,4000723,4000724,4000725,4000726,4000727,4000728,4000729,4000730,4000731,4000732,4000733,4000734,4000735,4000736,4000737,4000738,4000739,4000740,4000741,4000742,4000743,4000744,4000745,4000746,4000747,4000748,4000749,4000750,4000751,4000752,4000753,4000754,4000755,4000756,4000757,4000758,4000759,4000760,4000761,4000762,4000763,4000764,4000765,4000766,4000767,4000768,4000769,4000770,4000771,4000772,4000773,4000774,4000775,4000776,4000777,4000778,4000779,4000780,4000781,4000782,4000783,4000784,4000785,4000786,4000787,4000788,4000789,4000790,4000791,4000792,4000793,4000794,4000795,4000796,4000797,4000798,4000799,4000800,4000801,4000802,4000803,4000804,4000805,4000806,4000807,4000808,4000809,4000810,4000811,4000812,4000813,4000814,4000815,4000816,4000817,4000818,4000819,4000820,4000821,4000822,4000823,4000824,4000825,4000826,4000827,4000828,4000829,4000830,4000831,4000832,4000833,4000834,4000835,4000836,4000837,4000838,4000839,4000840,4000841,4000842,4000843,4000844,4000845,4000846,4000847,4000848,4000849,4000850,4000851,4000852,4000853,4000854,4000855,4000856,4000857,4000858,4000859,4000860,4000861,4000862,4000863,4000864,4000865,4000866,4000867,4000868,4000869,4000870,4000871,4000872,4000873,4000874,4000875,4000876,4000877,4000878,4000879,4000880,4000881,4000882,4000883,4000884,4000885,4000886,4000887,4000888,4000889,4000890,4000891,4000892,4000893,4000894,4000895,4000896,4000897,4000898,4000899,4000900,4000901,4000902,4000903,4000904,4000905,4000906,4000907,4000908,4000909,4000910,4000911,4000912,4000913,4000914,4000915,4000916,4000917,4000918,4000919,4000920,4000921,4000922,4000923,4000924,4000925,4000926,4000927,4000928,4000929,4000930,4000931,4000932,4000933,4000934,4000935,4000936,4000937,4000938,4000939,4000940,4000941,4000942,4000943,4000944,4000945,4000946,4000947,4000948,4000949,4000950,4000951,4000952,4000953,4000954,4000955,4000956,4000957,4000958,4000959,4000960,4000961,4000962,4000963,4000964,4000965,4000966,4000967,4000968,4000969,4000970,4000971,4000972,4000973,4000974,4000975,4000976,4000977,4000978,4000979,4000980,4000981,4000982,4000983,4000984,4000985,4000986,4000987,4000988,4000989,4000990,4000991,4000992,4000993,4000994,4000995,4000996,4000997,4000998,4000999,4001000,5000002,5000003,5000004,5000005,5000006,5000007,5000008,5000009,5000010,5000011,5000012,5000013,5000014,5000015,5000016,5000017,5000018,5000019,5000020,5000021,5000022,5000023,5000024,5000025,5000026,5000027,5000028,5000029,5000030,5000031,5000032,5000033,5000034,5000035,5000036,5000037,5000038,5000039,5000040,5000041,5000042,5000043,5000044,5000045,5000046,5000047,5000048,5000049,5000050,5000051,5000052,5000053,5000054,5000055,5000056,5000057,5000058,5000059,5000060,5000061,5000062,5000063,5000064,5000065,5000066,5000067,5000068,5000069,5000070,5000071,5000072,5000073,5000074,5000075,5000076,5000077,5000078,5000079,5000080,5000081,5000082,5000083,5000084,5000085,5000086,5000087,5000088,5000089,5000090,5000091,5000092,5000093,5000094,5000095,5000096,5000097,5000098,5000099,5000100,5000101,5000102,5000103,5000104,5000105,5000106,5000107,5000108,5000109,5000110,5000111,5000112,5000113,5000114,5000115,5000116,5000117,5000118,5000119,5000120,5000121,5000122,5000123,5000124,5000125,5000126,5000127,5000128,5000129,5000130,5000131,5000132,5000133,5000134,5000135,5000136,5000137,5000138,5000139,5000140,5000141,5000142,5000143,5000144,5000145,5000146,5000147,5000148,5000149,5000150,5000151,5000152,5000153,5000154,5000155,5000156,5000157,5000158,5000159,5000160,5000161,5000162,5000163,5000164,5000165,5000166,5000167,5000168,5000169,5000170,5000171,5000172,5000173,5000174,5000175,5000176,5000177,5000178,5000179,5000180,5000181,5000182,5000183,5000184,5000185,5000186,5000187,5000188,5000189,5000190,5000191,5000192,5000193,5000194,5000195,5000196,5000197,5000198,5000199,5000200,5000201,5000202,5000203,5000204,5000205,5000206,5000207,5000208,5000209,5000210,5000211,5000212,5000213,5000214,5000215,5000216,5000217,5000218,5000219,5000220,5000221,5000222,5000223,5000224,5000225,5000226,5000227,5000228,5000229,5000230,5000231,5000232,5000233,5000234,5000235,5000236,5000237,5000238,5000239,5000240,5000241,5000242,5000243,5000244,5000245,5000246,5000247,5000248,5000249,5000250,5000251,5000252,5000253,5000254,5000255,5000256,5000257,5000258,5000259,5000260,5000261,5000262,5000263,5000264,5000265,5000266,5000267,5000268,5000269,5000270,5000271,5000272,5000273,5000274,5000275,5000276,5000277,5000278,5000279,5000280,5000281,5000282,5000283,5000284,5000285,5000286,5000287,5000288,5000289,5000290,5000291,5000292,5000293,5000294,5000295,5000296,5000297,5000298,5000299,5000300,5000301,5000302,5000303,5000304,5000305,5000306,5000307,5000308,5000309,5000310,5000311,5000312,5000313,5000314,5000315,5000316,5000317,5000318,5000319,5000320,5000321,5000322,5000323,5000324,5000325,5000326,5000327,5000328,5000329,5000330,5000331,5000332,5000333,5000334,5000335,5000336,5000337,5000338,5000339,5000340,5000341,5000342,5000343,5000344,5000345,5000346,5000347,5000348,5000349,5000350,5000351,5000352,5000353,5000354,5000355,5000356,5000357,5000358,5000359,5000360,5000361,5000362,5000363,5000364,5000365,5000366,5000367,5000368,5000369,5000370,5000371,5000372,5000373,5000374,5000375,5000376,5000377,5000378,5000379,5000380,5000381,5000382,5000383,5000384,5000385,5000386,5000387,5000388,5000389,5000390,5000391,5000392,5000393,5000394,5000395,5000396,5000397,5000398,5000399,5000400,5000401,5000402,5000403,5000404,5000405,5000406,5000407,5000408,5000409,5000410,5000411,5000412,5000413,5000414,5000415,5000416,5000417,5000418,5000419,5000420,5000421,5000422,5000423,5000424,5000425,5000426,5000427,5000428,5000429,5000430,5000431,5000432,5000433,5000434,5000435,5000436,5000437,5000438,5000439,5000440,5000441,5000442,5000443,5000444,5000445,5000446,5000447,5000448,5000449,5000450,5000451,5000452,5000453,5000454,5000455,5000456,5000457,5000458,5000459,5000460,5000461,5000462,5000463,5000464,5000465,5000466,5000467,5000468,5000469,5000470,5000471,5000472,5000473,5000474,5000475,5000476,5000477,5000478,5000479,5000480,5000481,5000482,5000483,5000484,5000485,5000486,5000487,5000488,5000489,5000490,5000491,5000492,5000493,5000494,5000495,5000496,5000497,5000498,5000499,5000500,5000501,5000502,5000503,5000504,5000505,5000506,5000507,5000508,5000509,5000510,5000511,5000512,5000513,5000514,5000515,5000516,5000517,5000518,5000519,5000520,5000521,5000522,5000523,5000524,5000525,5000526,5000527,5000528,5000529,5000530,5000531,5000532,5000533,5000534,5000535,5000536,5000537,5000538,5000539,5000540,5000541,5000542,5000543,5000544,5000545,5000546,5000547,5000548,5000549,5000550,5000551,5000552,5000553,5000554,5000555,5000556,5000557,5000558,5000559,5000560,5000561,5000562,5000563,5000564,5000565,5000566,5000567,5000568,5000569,5000570,5000571,5000572,5000573,5000574,5000575,5000576,5000577,5000578,5000579,5000580,5000581,5000582,5000583,5000584,5000585,5000586,5000587,5000588,5000589,5000590,5000591,5000592,5000593,5000594,5000595,5000596,5000597,5000598,5000599,5000600,5000601,5000602,5000603,5000604,5000605,5000606,5000607,5000608,5000609,5000610,5000611,5000612,5000613,5000614,5000615,5000616,5000617,5000618,5000619,5000620,5000621,5000622,5000623,5000624,5000625,5000626,5000627,5000628,5000629,5000630,5000631,5000632,5000633,5000634,5000635,5000636,5000637,5000638,5000639,5000640,5000641,5000642,5000643,5000644,5000645,5000646,5000647,5000648,5000649,5000650,5000651,5000652,5000653,5000654,5000655,5000656,5000657,5000658,5000659,5000660,5000661,5000662,5000663,5000664,5000665,5000666,5000667,5000668,5000669,5000670,5000671,5000672,5000673,5000674,5000675,5000676,5000677,5000678,5000679,5000680,5000681,5000682,5000683,5000684,5000685,5000686,5000687,5000688,5000689,5000690,5000691,5000692,5000693,5000694,5000695,5000696,5000697,5000698,5000699,5000700,5000701,5000702,5000703,5000704,5000705,5000706,5000707,5000708,5000709,5000710,5000711,5000712,5000713,5000714,5000715,5000716,5000717,5000718,5000719,5000720,5000721,5000722,5000723,5000724,5000725,5000726,5000727,5000728,5000729,5000730,5000731,5000732,5000733,5000734,5000735,5000736,5000737,5000738,5000739,5000740,5000741,5000742,5000743,5000744,5000745,5000746,5000747,5000748,5000749,5000750,5000751,5000752,5000753,5000754,5000755,5000756,5000757,5000758,5000759,5000760,5000761,5000762,5000763,5000764,5000765,5000766,5000767,5000768,5000769,5000770,5000771,5000772,5000773,5000774,5000775,5000776,5000777,5000778,5000779,5000780,5000781,5000782,5000783,5000784,5000785,5000786,5000787,5000788,5000789,5000790,5000791,5000792,5000793,5000794,5000795,5000796,5000797,5000798,5000799,5000800,5000801,5000802,5000803,5000804,5000805,5000806,5000807,5000808,5000809,5000810,5000811,5000812,5000813,5000814,5000815,5000816,5000817,5000818,5000819,5000820,5000821,5000822,5000823,5000824,5000825,5000826,5000827,5000828,5000829,5000830,5000831,5000832,5000833,5000834,5000835,5000836,5000837,5000838,5000839,5000840,5000841,5000842,5000843,5000844,5000845,5000846,5000847,5000848,5000849,5000850,5000851,5000852,5000853,5000854,5000855,5000856,5000857,5000858,5000859,5000860,5000861,5000862,5000863,5000864,5000865,5000866,5000867,5000868,5000869,5000870,5000871,5000872,5000873,5000874,5000875,5000876,5000877,5000878,5000879,5000880,5000881,5000882,5000883,5000884,5000885,5000886,5000887,5000888,5000889,5000890,5000891,5000892,5000893,5000894,5000895,5000896,5000897,5000898,5000899,5000900,5000901,5000902,5000903,5000904,5000905,5000906,5000907,5000908,5000909,5000910,5000911,5000912,5000913,5000914,5000915,5000916,5000917,5000918,5000919,5000920,5000921,5000922,5000923,5000924,5000925,5000926,5000927,5000928,5000929,5000930,5000931,5000932,5000933,5000934,5000935,5000936,5000937,5000938,5000939,5000940,5000941,5000942,5000943,5000944,5000945,5000946,5000947,5000948,5000949,5000950,5000951,5000952,5000953,5000954,5000955,5000956,5000957,5000958,5000959,5000960,5000961,5000962,5000963,5000964,5000965,5000966,5000967,5000968,5000969,5000970,5000971,5000972,5000973,5000974,5000975,5000976,5000977,5000978,5000979,5000980,5000981,5000982,5000983,5000984,5000985,5000986,5000987,5000988,5000989,5000990,5000991,5000992,5000993,5000994,5000995,5000996,5000997,5000998,5000999,5001000,6000001,6000002,6000003,6000004,6000005,6000006,6000007,6000008,6000009,6000010,6000011,6000012,6000013,6000014,6000015,6000016,6000017,6000018,6000019,6000020,6000021,6000022,6000023,6000024,6000025,6000026,6000027,6000028,6000029,6000030,6000031,6000032,6000033,6000034,6000035,6000036,6000037,6000038,6000039,6000040,6000041,6000042,6000043,6000044,6000045,6000046,6000047,6000048,6000049,6000050,6000051,6000052,6000053,6000054,6000055,6000056,6000057,6000058,6000059,6000060,6000061,6000062,6000063,6000064,6000065,6000066,6000067,6000068,6000069,6000070,6000071,6000072,6000073,6000074,6000075,6000076,6000077,6000078,6000079,6000080,6000081,6000082,6000083,6000084,6000085,6000086,6000087,6000088,6000089,6000090,6000091,6000092,6000093,6000094,6000095,6000096,6000097,6000098,6000099,6000100,6000101,6000102,6000103,6000104,6000105,6000106,6000107,6000108,6000109,6000110,6000111,6000112,6000113,6000114,6000115,6000116,6000117,6000118,6000119,6000120,6000121,6000122,6000123,6000124,6000125,6000126,6000127,6000128,6000129,6000130,6000131,6000132,6000133,6000134,6000135,6000136,6000137,6000138,6000139,6000140,6000141,6000142,6000143,6000144,6000145,6000146,6000147,6000148,6000149,6000150,6000151,6000152,6000153,6000154,6000155,6000156,6000157,6000158,6000159,6000160,6000161,6000162,6000163,6000164,6000165,6000166,6000167,6000168,6000169,6000170,6000171,6000172,6000173,6000174,6000175,6000176,6000177,6000178,6000179,6000180,6000181,6000182,6000183,6000184,6000185,6000186,6000187,6000188,6000189,6000190,6000191,6000192,6000193,6000194,6000195,6000196,6000197,6000198,6000199,6000200,6000201,6000202,6000203,6000204,6000205,6000206,6000207,6000208,6000209,6000210,6000211,6000212,6000213,6000214,6000215,6000216,6000217,6000218,6000219,6000220,6000221,6000222,6000223,6000224,6000225,6000226,6000227,6000228,6000229,6000230,6000231,6000232,6000233,6000234,6000235,6000236,6000237,6000238,6000239,6000240,6000241,6000242,6000243,6000244,6000245,6000246,6000247,6000248,6000249,6000250,6000251,6000252,6000253,6000254,6000255,6000256,6000257,6000258,6000259,6000260,6000261,6000262,6000263,6000264,6000265,6000266,6000267,6000268,6000269,6000270,6000271,6000272,6000273,6000274,6000275,6000276,6000277,6000278,6000279,6000280,6000281,6000282,6000283,6000284,6000285,6000286,6000287,6000288,6000289,6000290,6000291,6000292,6000293,6000294,6000295,6000296,6000297,6000298,6000299,6000300,6000301,6000302,6000303,6000304,6000305,6000306,6000307,6000308,6000309,6000310,6000311,6000312,6000313,6000314,6000315,6000316,6000317,6000318,6000319,6000320,6000321,6000322,6000323,6000324,6000325,6000326,6000327,6000328,6000329,6000330,6000331,6000332,6000333,6000334,6000335,6000336,6000337,6000338,6000339,6000340,6000341,6000342,6000343,6000344,6000345,6000346,6000347,6000348,6000349,6000350,6000351,6000352,6000353,6000354,6000355,6000356,6000357,6000358,6000359,6000360,6000361,6000362,6000363,6000364,6000365,6000366,6000367,6000368,6000369,6000370,6000371,6000372,6000373,6000374,6000375,6000376,6000377,6000378,6000379,6000380,6000381,6000382,6000383,6000384,6000385,6000386,6000387,6000388,6000389,6000390,6000391,6000392,6000393,6000394,6000395,6000396,6000397,6000398,6000399,6000400,6000401,6000402,6000403,6000404,6000405,6000406,6000407,6000408,6000409,6000410,6000411,6000412,6000413,6000414,6000415,6000416,6000417,6000418,6000419,6000420,6000421,6000422,6000423,6000424,6000425,6000426,6000427,6000428,6000429,6000430,6000431,6000432,6000433,6000434,6000435,6000436,6000437,6000438,6000439,6000440,6000441,6000442,6000443,6000444,6000445,6000446,6000447,6000448,6000449,6000450,6000451,6000452,6000453,6000454,6000455,6000456,6000457,6000458,6000459,6000460,6000461,6000462,6000463,6000464,6000465,6000466,6000467,6000468,6000469,6000470,6000471,6000472,6000473,6000474,6000475,6000476,6000477,6000478,6000479,6000480,6000481,6000482,6000483,6000484,6000485,6000486,6000487,6000488,6000489,6000490,6000491,6000492,6000493,6000494,6000495,6000496,6000497,6000498,6000499,6000500,6000501,6000502,6000503,6000504,6000505,6000506,6000507,6000508,6000509,6000510,6000511,6000512,6000513,6000514,6000515,6000516,6000517,6000518,6000519,6000520,6000521,6000522,6000523,6000524,6000525,6000526,6000527,6000528,6000529,6000530,6000531,6000532,6000533,6000534,6000535,6000536,6000537,6000538,6000539,6000540,6000541,6000542,6000543,6000544,6000545,6000546,6000547,6000548,6000549,6000550,6000551,6000552,6000553,6000554,6000555,6000556,6000557,6000558,6000559,6000560,6000561,6000562,6000563,6000564,6000565,6000566,6000567,6000568,6000569,6000570,6000571,6000572,6000573,6000574,6000575,6000576,6000577,6000578,6000579,6000580,6000581,6000582,6000583,6000584,6000585,6000586,6000587,6000588,6000589,6000590,6000591,6000592,6000593,6000594,6000595,6000596,6000597,6000598,6000599,6000600,6000601,6000602,6000603,6000604,6000605,6000606,6000607,6000608,6000609,6000610,6000611,6000612,6000613,6000614,6000615,6000616,6000617,6000618,6000619,6000620,6000621,6000622,6000623,6000624,6000625,6000626,6000627,6000628,6000629,6000630,6000631,6000632,6000633,6000634,6000635,6000636,6000637,6000638,6000639,6000640,6000641,6000642,6000643,6000644,6000645,6000646,6000647,6000648,6000649,6000650,6000651,6000652,6000653,6000654,6000655,6000656,6000657,6000658,6000659,6000660,6000661,6000662,6000663,6000664,6000665,6000666,6000667,6000668,6000669,6000670,6000671,6000672,6000673,6000674,6000675,6000676,6000677,6000678,6000679,6000680,6000681,6000682,6000683,6000684,6000685,6000686,6000687,6000688,6000689,6000690,6000691,6000692,6000693,6000694,6000695,6000696,6000697,6000698,6000699,6000700,6000701,6000702,6000703,6000704,6000705,6000706,6000707,6000708,6000709,6000710,6000711,6000712,6000713,6000714,6000715,6000716,6000717,6000718,6000719,6000720,6000721,6000722,6000723,6000724,6000725,6000726,6000727,6000728,6000729,6000730,6000731,6000732,6000733,6000734,6000735,6000736,6000737,6000738,6000739,6000740,6000741,6000742,6000743,6000744,6000745,6000746,6000747,6000748,6000749,6000750,6000751,6000752,6000753,6000754,6000755,6000756,6000757,6000758,6000759,6000760,6000761,6000762,6000763,6000764,6000765,6000766,6000767,6000768,6000769,6000770,6000771,6000772,6000773,6000774,6000775,6000776,6000777,6000778,6000779,6000780,6000781,6000782,6000783,6000784,6000785,6000786,6000787,6000788,6000789,6000790,6000791,6000792,6000793,6000794,6000795,6000796,6000797,6000798,6000799,6000800,6000801,6000802,6000803,6000804,6000805,6000806,6000807,6000808,6000809,6000810,6000811,6000812,6000813,6000814,6000815,6000816,6000817,6000818,6000819,6000820,6000821,6000822,6000823,6000824,6000825,6000826,6000827,6000828,6000829,6000830,6000831,6000832,6000833,6000834,6000835,6000836,6000837,6000838,6000839,6000840,6000841,6000842,6000843,6000844,6000845,6000846,6000847,6000848,6000849,6000850,6000851,6000852,6000853,6000854,6000855,6000856,6000857,6000858,6000859,6000860,6000861,6000862,6000863,6000864,6000865,6000866,6000867,6000868,6000869,6000870,6000871,6000872,6000873,6000874,6000875,6000876,6000877,6000878,6000879,6000880,6000881,6000882,6000883,6000884,6000885,6000886,6000887,6000888,6000889,6000890,6000891,6000892,6000893,6000894,6000895,6000896,6000897,6000898,6000899,6000900,6000901,6000902,6000903,6000904,6000905,6000906,6000907,6000908,6000909,6000910,6000911,6000912,6000913,6000914,6000915,6000916,6000917,6000918,6000919,6000920,6000921,6000922,6000923,6000924,6000925,6000926,6000927,6000928,6000929,6000930,6000931,6000932,6000933,6000934,6000935,6000936,6000937,6000938,6000939,6000940,6000941,6000942,6000943,6000944,6000945,6000946,6000947,6000948,6000949,6000950,6000951,6000952,6000953,6000954,6000955,6000956,6000957,6000958,6000959,6000960,6000961,6000962,6000963,6000964,6000965,6000966,6000967,6000968,6000969,6000970,6000971,6000972,6000973,6000974,6000975,6000976,6000977,6000978,6000979,6000980,6000981,6000982,6000983,6000984,6000985,6000986,6000987,6000988,6000989,6000990,6000991,6000992,6000993,6000994,6000995,6000996,6000997,6000998,6000999,6001000,7000001,7000002,7000003,7000004,7000005,7000006,7000007,7000008,7000009,7000010,7000011,7000012,7000013,7000014,7000015,7000016,7000017,7000018,7000019,7000020,7000021,7000022,7000023,7000024,7000025,7000026,7000027,7000028,7000029,7000030,7000031,7000032,7000033,7000034,7000035,7000036,7000037,7000038,7000039,7000040,7000041,7000042,7000043,7000044,7000045,7000046,7000047,7000048,7000049,7000050,7000051,7000052,7000053,7000054,7000055,7000056,7000057,7000058,7000059,7000060,7000061,7000062,7000063,7000064,7000065,7000066,7000067,7000068,7000069,7000070,7000071,7000072,7000073,7000074,7000075,7000076,7000077,7000078,7000079,7000080,7000081,7000082,7000083,7000084,7000085,7000086,7000087,7000088,7000089,7000090,7000091,7000092,7000093,7000094,7000095,7000096,7000097,7000098,7000099,7000100,7000101,7000102,7000103,7000104,7000105,7000106,7000107,7000108,7000109,7000110,7000111,7000112,7000113,7000114,7000115,7000116,7000117,7000118,7000119,7000120,7000121,7000122,7000123,7000124,7000125,7000126,7000127,7000128,7000129,7000130,7000131,7000132,7000133,7000134,7000135,7000136,7000137,7000138,7000139,7000140,7000141,7000142,7000143,7000144,7000145,7000146,7000147,7000148,7000149,7000150,7000151,7000152,7000153,7000154,7000155,7000156,7000157,7000158,7000159,7000160,7000161,7000162,7000163,7000164,7000165,7000166,7000167,7000168,7000169,7000170,7000171,7000172,7000173,7000174,7000175,7000176,7000177,7000178,7000179,7000180,7000181,7000182,7000183,7000184,7000185,7000186,7000187,7000188,7000189,7000190,7000191,7000192,7000193,7000194,7000195,7000196,7000197,7000198,7000199,7000200,7000201,7000202,7000203,7000204,7000205,7000206,7000207,7000208,7000209,7000210,7000211,7000212,7000213,7000214,7000215,7000216,7000217,7000218,7000219,7000220,7000221,7000222,7000223,7000224,7000225,7000226,7000227,7000228,7000229,7000230,7000231,7000232,7000233,7000234,7000235,7000236,7000237,7000238,7000239,7000240,7000241,7000242,7000243,7000244,7000245,7000246,7000247,7000248,7000249,7000250,7000251,7000252,7000253,7000254,7000255,7000256,7000257,7000258,7000259,7000260,7000261,7000262,7000263,7000264,7000265,7000266,7000267,7000268,7000269,7000270,7000271,7000272,7000273,7000274,7000275,7000276,7000277,7000278,7000279,7000280,7000281,7000282,7000283,7000284,7000285,7000286,7000287,7000288,7000289,7000290,7000291,7000292,7000293,7000294,7000295,7000296,7000297,7000298,7000299,7000300,7000301,7000302,7000303,7000304,7000305,7000306,7000307,7000308,7000309,7000310,7000311,7000312,7000313,7000314,7000315,7000316,7000317,7000318,7000319,7000320,7000321,7000322,7000323,7000324,7000325,7000326,7000327,7000328,7000329,7000330,7000331,7000332,7000333,7000334,7000335,7000336,7000337,7000338,7000339,7000340,7000341,7000342,7000343,7000344,7000345,7000346,7000347,7000348,7000349,7000350,7000351,7000352,7000353,7000354,7000355,7000356,7000357,7000358,7000359,7000360,7000361,7000362,7000363,7000364,7000365,7000366,7000367,7000368,7000369,7000370,7000371,7000372,7000373,7000374,7000375,7000376,7000377,7000378,7000379,7000380,7000381,7000382,7000383,7000384,7000385,7000386,7000387,7000388,7000389,7000390,7000391,7000392,7000393,7000394,7000395,7000396,7000397,7000398,7000399,7000400,7000401,7000402,7000403,7000404,7000405,7000406,7000407,7000408,7000409,7000410,7000411,7000412,7000413,7000414,7000415,7000416,7000417,7000418,7000419,7000420,7000421,7000422,7000423,7000424,7000425,7000426,7000427,7000428,7000429,7000430,7000431,7000432,7000433,7000434,7000435,7000436,7000437,7000438,7000439,7000440,7000441,7000442,7000443,7000444,7000445,7000446,7000447,7000448,7000449,7000450,7000451,7000452,7000453,7000454,7000455,7000456,7000457,7000458,7000459,7000460,7000461,7000462,7000463,7000464,7000465,7000466,7000467,7000468,7000469,7000470,7000471,7000472,7000473,7000474,7000475,7000476,7000477,7000478,7000479,7000480,7000481,7000482,7000483,7000484,7000485,7000486,7000487,7000488,7000489,7000490,7000491,7000492,7000493,7000494,7000495,7000496,7000497,7000498,7000499,7000500,7000501,7000502,7000503,7000504,7000505,7000506,7000507,7000508,7000509,7000510,7000511,7000512,7000513,7000514,7000515,7000516,7000517,7000518,7000519,7000520,7000521,7000522,7000523,7000524,7000525,7000526,7000527,7000528,7000529,7000530,7000531,7000532,7000533,7000534,7000535,7000536,7000537,7000538,7000539,7000540,7000541,7000542,7000543,7000544,7000545,7000546,7000547,7000548,7000549,7000550,7000551,7000552,7000553,7000554,7000555,7000556,7000557,7000558,7000559,7000560,7000561,7000562,7000563,7000564,7000565,7000566,7000567,7000568,7000569,7000570,7000571,7000572,7000573,7000574,7000575,7000576,7000577,7000578,7000579,7000580,7000581,7000582,7000583,7000584,7000585,7000586,7000587,7000588,7000589,7000590,7000591,7000592,7000593,7000594,7000595,7000596,7000597,7000598,7000599,7000600,7000601,7000602,7000603,7000604,7000605,7000606,7000607,7000608,7000609,7000610,7000611,7000612,7000613,7000614,7000615,7000616,7000617,7000618,7000619,7000620,7000621,7000622,7000623,7000624,7000625,7000626,7000627,7000628,7000629,7000630,7000631,7000632,7000633,7000634,7000635,7000636,7000637,7000638,7000639,7000640,7000641,7000642,7000643,7000644,7000645,7000646,7000647,7000648,7000649,7000650,7000651,7000652,7000653,7000654,7000655,7000656,7000657,7000658,7000659,7000660,7000661,7000662,7000663,7000664,7000665,7000666,7000667,7000668,7000669,7000670,7000671,7000672,7000673,7000674,7000675,7000676,7000677,7000678,7000679,7000680,7000681,7000682,7000683,7000684,7000685,7000686,7000687,7000688,7000689,7000690,7000691,7000692,7000693,7000694,7000695,7000696,7000697,7000698,7000699,7000700,7000701,7000702,7000703,7000704,7000705,7000706,7000707,7000708,7000709,7000710,7000711,7000712,7000713,7000714,7000715,7000716,7000717,7000718,7000719,7000720,7000721,7000722,7000723,7000724,7000725,7000726,7000727,7000728,7000729,7000730,7000731,7000732,7000733,7000734,7000735,7000736,7000737,7000738,7000739,7000740,7000741,7000742,7000743,7000744,7000745,7000746,7000747,7000748,7000749,7000750,7000751,7000752,7000753,7000754,7000755,7000756,7000757,7000758,7000759,7000760,7000761,7000762,7000763,7000764,7000765,7000766,7000767,7000768,7000769,7000770,7000771,7000772,7000773,7000774,7000775,7000776,7000777,7000778,7000779,7000780,7000781,7000782,7000783,7000784,7000785,7000786,7000787,7000788,7000789,7000790,7000791,7000792,7000793,7000794,7000795,7000796,7000797,7000798,7000799,7000800,7000801,7000802,7000803,7000804,7000805,7000806,7000807,7000808,7000809,7000810,7000811,7000812,7000813,7000814,7000815,7000816,7000817,7000818,7000819,7000820,7000821,7000822,7000823,7000824,7000825,7000826,7000827,7000828,7000829,7000830,7000831,7000832,7000833,7000834,7000835,7000836,7000837,7000838,7000839,7000840,7000841,7000842,7000843,7000844,7000845,7000846,7000847,7000848,7000849,7000850,7000851,7000852,7000853,7000854,7000855,7000856,7000857,7000858,7000859,7000860,7000861,7000862,7000863,7000864,7000865,7000866,7000867,7000868,7000869,7000870,7000871,7000872,7000873,7000874,7000875,7000876,7000877,7000878,7000879,7000880,7000881,7000882,7000883,7000884,7000885,7000886,7000887,7000888,7000889,7000890,7000891,7000892,7000893,7000894,7000895,7000896,7000897,7000898,7000899,7000900,7000901,7000902,7000903,7000904,7000905,7000906,7000907,7000908,7000909,7000910,7000911,7000912,7000913,7000914,7000915,7000916,7000917,7000918,7000919,7000920,7000921,7000922,7000923,7000924,7000925,7000926,7000927,7000928,7000929,7000930,7000931,7000932,7000933,7000934,7000935,7000936,7000937,7000938,7000939,7000940,7000941,7000942,7000943,7000944,7000945,7000946,7000947,7000948,7000949,7000950,7000951,7000952,7000953,7000954,7000955,7000956,7000957,7000958,7000959,7000960,7000961,7000962,7000963,7000964,7000965,7000966,7000967,7000968,7000969,7000970,7000971,7000972,7000973,7000974,7000975,7000976,7000977,7000978,7000979,7000980,7000981,7000982,7000983,7000984,7000985,7000986,7000987,7000988,7000989,7000990,7000991,7000992,7000993,7000994,7000995,7000996,7000997,7000998,7000999,7001000,8000002,8000003,8000004,8000005,8000006,8000007,8000008,8000009,8000010,8000011,8000012,8000013,8000014,8000015,8000016,8000017,8000018,8000019,8000020,8000021,8000022,8000023,8000024,8000025,8000026,8000027,8000028,8000029,8000030,8000031,8000032,8000033,8000034,8000035,8000036,8000037,8000038,8000039,8000040,8000041,8000042,8000043,8000044,8000045,8000046,8000047,8000048,8000049,8000050,8000051,8000052,8000053,8000054,8000055,8000056,8000057,8000058,8000059,8000060,8000061,8000062,8000063,8000064,8000065,8000066,8000067,8000068,8000069,8000070,8000071,8000072,8000073,8000074,8000075,8000076,8000077,8000078,8000079,8000080,8000081,8000082,8000083,8000084,8000085,8000086,8000087,8000088,8000089,8000090,8000091,8000092,8000093,8000094,8000095,8000096,8000097,8000098,8000099,8000100,8000101,8000102,8000103,8000104,8000105,8000106,8000107,8000108,8000109,8000110,8000111,8000112,8000113,8000114,8000115,8000116,8000117,8000118,8000119,8000120,8000121,8000122,8000123,8000124,8000125,8000126,8000127,8000128,8000129,8000130,8000131,8000132,8000133,8000134,8000135,8000136,8000137,8000138,8000139,8000140,8000141,8000142,8000143,8000144,8000145,8000146,8000147,8000148,8000149,8000150,8000151,8000152,8000153,8000154,8000155,8000156,8000157,8000158,8000159,8000160,8000161,8000162,8000163,8000164,8000165,8000166,8000167,8000168,8000169,8000170,8000171,8000172,8000173,8000174,8000175,8000176,8000177,8000178,8000179,8000180,8000181,8000182,8000183,8000184,8000185,8000186,8000187,8000188,8000189,8000190,8000191,8000192,8000193,8000194,8000195,8000196,8000197,8000198,8000199,8000200,8000201,8000202,8000203,8000204,8000205,8000206,8000207,8000208,8000209,8000210,8000211,8000212,8000213,8000214,8000215,8000216,8000217,8000218,8000219,8000220,8000221,8000222,8000223,8000224,8000225,8000226,8000227,8000228,8000229,8000230,8000231,8000232,8000233,8000234,8000235,8000236,8000237,8000238,8000239,8000240,8000241,8000242,8000243,8000244,8000245,8000246,8000247,8000248,8000249,8000250,8000251,8000252,8000253,8000254,8000255,8000256,8000257,8000258,8000259,8000260,8000261,8000262,8000263,8000264,8000265,8000266,8000267,8000268,8000269,8000270,8000271,8000272,8000273,8000274,8000275,8000276,8000277,8000278,8000279,8000280,8000281,8000282,8000283,8000284,8000285,8000286,8000287,8000288,8000289,8000290,8000291,8000292,8000293,8000294,8000295,8000296,8000297,8000298,8000299,8000300,8000301,8000302,8000303,8000304,8000305,8000306,8000307,8000308,8000309,8000310,8000311,8000312,8000313,8000314,8000315,8000316,8000317,8000318,8000319,8000320,8000321,8000322,8000323,8000324,8000325,8000326,8000327,8000328,8000329,8000330,8000331,8000332,8000333,8000334,8000335,8000336,8000337,8000338,8000339,8000340,8000341,8000342,8000343,8000344,8000345,8000346,8000347,8000348,8000349,8000350,8000351,8000352,8000353,8000354,8000355,8000356,8000357,8000358,8000359,8000360,8000361,8000362,8000363,8000364,8000365,8000366,8000367,8000368,8000369,8000370,8000371,8000372,8000373,8000374,8000375,8000376,8000377,8000378,8000379,8000380,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000388,8000389,8000390,8000391,8000392,8000393,8000394,8000395,8000396,8000397,8000398,8000399,8000400,8000401,8000402,8000403,8000404,8000405,8000406,8000407,8000408,8000409,8000410,8000411,8000412,8000413,8000414,8000415,8000416,8000417,8000418,8000419,8000420,8000421,8000422,8000423,8000424,8000425,8000426,8000427,8000428,8000429,8000430,8000431,8000432,8000433,8000434,8000435,8000436,8000437,8000438,8000439,8000440,8000441,8000442,8000443,8000444,8000445,8000446,8000447,8000448,8000449,8000450,8000451,8000452,8000453,8000454,8000455,8000456,8000457,8000458,8000459,8000460,8000461,8000462,8000463,8000464,8000465,8000466,8000467,8000468,8000469,8000470,8000471,8000472,8000473,8000474,8000475,8000476,8000477,8000478,8000479,8000480,8000481,8000482,8000483,8000484,8000485,8000486,8000487,8000488,8000489,8000490,8000491,8000492,8000493,8000494,8000495,8000496,8000497,8000498,8000499,8000500,8000501,8000502,8000503,8000504,8000505,8000506,8000507,8000508,8000509,8000510,8000511,8000512,8000513,8000514,8000515,8000516,8000517,8000518,8000519,8000520,8000521,8000522,8000523,8000524,8000525,8000526,8000527,8000528,8000529,8000530,8000531,8000532,8000533,8000534,8000535,8000536,8000537,8000538,8000539,8000540,8000541,8000542,8000543,8000544,8000545,8000546,8000547,8000548,8000549,8000550,8000551,8000552,8000553,8000554,8000555,8000556,8000557,8000558,8000559,8000560,8000561,8000562,8000563,8000564,8000565,8000566,8000567,8000568,8000569,8000570,8000571,8000572,8000573,8000574,8000575,8000576,8000577,8000578,8000579,8000580,8000581,8000582,8000583,8000584,8000585,8000586,8000587,8000588,8000589,8000590,8000591,8000592,8000593,8000594,8000595,8000596,8000597,8000598,8000599,8000600,8000601,8000602,8000603,8000604,8000605,8000606,8000607,8000608,8000609,8000610,8000611,8000612,8000613,8000614,8000615,8000616,8000617,8000618,8000619,8000620,8000621,8000622,8000623,8000624,8000625,8000626,8000627,8000628,8000629,8000630,8000631,8000632,8000633,8000634,8000635,8000636,8000637,8000638,8000639,8000640,8000641,8000642,8000643,8000644,8000645,8000646,8000647,8000648,8000649,8000650,8000651,8000652,8000653,8000654,8000655,8000656,8000657,8000658,8000659,8000660,8000661,8000662,8000663,8000664,8000665,8000666,8000667,8000668,8000669,8000670,8000671,8000672,8000673,8000674,8000675,8000676,8000677,8000678,8000679,8000680,8000681,8000682,8000683,8000684,8000685,8000686,8000687,8000688,8000689,8000690,8000691,8000692,8000693,8000694,8000695,8000696,8000697,8000698,8000699,8000700,8000701,8000702,8000703,8000704,8000705,8000706,8000707,8000708,8000709,8000710,8000711,8000712,8000713,8000714,8000715,8000716,8000717,8000718,8000719,8000720,8000721,8000722,8000723,8000724,8000725,8000726,8000727,8000728,8000729,8000730,8000731,8000732,8000733,8000734,8000735,8000736,8000737,8000738,8000739,8000740,8000741,8000742,8000743,8000744,8000745,8000746,8000747,8000748,8000749,8000750,8000751,8000752,8000753,8000754,8000755,8000756,8000757,8000758,8000759,8000760,8000761,8000762,8000763,8000764,8000765,8000766,8000767,8000768,8000769,8000770,8000771,8000772,8000773,8000774,8000775,8000776,8000777,8000778,8000779,8000780,8000781,8000782,8000783,8000784,8000785,8000786,8000787,8000788,8000789,8000790,8000791,8000792,8000793,8000794,8000795,8000796,8000797,8000798,8000799,8000800,8000801,8000802,8000803,8000804,8000805,8000806,8000807,8000808,8000809,8000810,8000811,8000812,8000813,8000814,8000815,8000816,8000817,8000818,8000819,8000820,8000821,8000822,8000823,8000824,8000825,8000826,8000827,8000828,8000829,8000830,8000831,8000832,8000833,8000834,8000835,8000836,8000837,8000838,8000839,8000840,8000841,8000842,8000843,8000844,8000845,8000846,8000847,8000848,8000849,8000850,8000851,8000852,8000853,8000854,8000855,8000856,8000857,8000858,8000859,8000860,8000861,8000862,8000863,8000864,8000865,8000866,8000867,8000868,8000869,8000870,8000871,8000872,8000873,8000874,8000875,8000876,8000877,8000878,8000879,8000880,8000881,8000882,8000883,8000884,8000885,8000886,8000887,8000888,8000889,8000890,8000891,8000892,8000893,8000894,8000895,8000896,8000897,8000898,8000899,8000900,8000901,8000902,8000903,8000904,8000905,8000906,8000907,8000908,8000909,8000910,8000911,8000912,8000913,8000914,8000915,8000916,8000917,8000918,8000919,8000920,8000921,8000922,8000923,8000924,8000925,8000926,8000927,8000928,8000929,8000930,8000931,8000932,8000933,8000934,8000935,8000936,8000937,8000938,8000939,8000940,8000941,8000942,8000943,8000944,8000945,8000946,8000947,8000948,8000949,8000950,8000951,8000952,8000953,8000954,8000955,8000956,8000957,8000958,8000959,8000960,8000961,8000962,8000963,8000964,8000965,8000966,8000967,8000968,8000969,8000970,8000971,8000972,8000973,8000974,8000975,8000976,8000977,8000978,8000979,8000980,8000981,8000982,8000983,8000984,8000985,8000986,8000987,8000988,8000989,8000990,8000991,8000992,8000993,8000994,8000995,8000996,8000997,8000998,8000999,8001000,9000001,9000002,9000003,9000004,9000005,9000006,9000007,9000008,9000009,9000010,9000011,9000012,9000013,9000014,9000015,9000016,9000017,9000018,9000019,9000020,9000021,9000022,9000023,9000024,9000025,9000026,9000027,9000028,9000029,9000030,9000031,9000032,9000033,9000034,9000035,9000036,9000037,9000038,9000039,9000040,9000041,9000042,9000043,9000044,9000045,9000046,9000047,9000048,9000049,9000050,9000051,9000052,9000053,9000054,9000055,9000056,9000057,9000058,9000059,9000060,9000061,9000062,9000063,9000064,9000065,9000066,9000067,9000068,9000069,9000070,9000071,9000072,9000073,9000074,9000075,9000076,9000077,9000078,9000079,9000080,9000081,9000082,9000083,9000084,9000085,9000086,9000087,9000088,9000089,9000090,9000091,9000092,9000093,9000094,9000095,9000096,9000097,9000098,9000099,9000100,9000101,9000102,9000103,9000104,9000105,9000106,9000107,9000108,9000109,9000110,9000111,9000112,9000113,9000114,9000115,9000116,9000117,9000118,9000119,9000120,9000121,9000122,9000123,9000124,9000125,9000126,9000127,9000128,9000129,9000130,9000131,9000132,9000133,9000134,9000135,9000136,9000137,9000138,9000139,9000140,9000141,9000142,9000143,9000144,9000145,9000146,9000147,9000148,9000149,9000150,9000151,9000152,9000153,9000154,9000155,9000156,9000157,9000158,9000159,9000160,9000161,9000162,9000163,9000164,9000165,9000166,9000167,9000168,9000169,9000170,9000171,9000172,9000173,9000174,9000175,9000176,9000177,9000178,9000179,9000180,9000181,9000182,9000183,9000184,9000185,9000186,9000187,9000188,9000189,9000190,9000191,9000192,9000193,9000194,9000195,9000196,9000197,9000198,9000199,9000200,9000201,9000202,9000203,9000204,9000205,9000206,9000207,9000208,9000209,9000210,9000211,9000212,9000213,9000214,9000215,9000216,9000217,9000218,9000219,9000220,9000221,9000222,9000223,9000224,9000225,9000226,9000227,9000228,9000229,9000230,9000231,9000232,9000233,9000234,9000235,9000236,9000237,9000238,9000239,9000240,9000241,9000242,9000243,9000244,9000245,9000246,9000247,9000248,9000249,9000250,9000251,9000252,9000253,9000254,9000255,9000256,9000257,9000258,9000259,9000260,9000261,9000262,9000263,9000264,9000265,9000266,9000267,9000268,9000269,9000270,9000271,9000272,9000273,9000274,9000275,9000276,9000277,9000278,9000279,9000280,9000281,9000282,9000283,9000284,9000285,9000286,9000287,9000288,9000289,9000290,9000291,9000292,9000293,9000294,9000295,9000296,9000297,9000298,9000299,9000300,9000301,9000302,9000303,9000304,9000305,9000306,9000307,9000308,9000309,9000310,9000311,9000312,9000313,9000314,9000315,9000316,9000317,9000318,9000319,9000320,9000321,9000322,9000323,9000324,9000325,9000326,9000327,9000328,9000329,9000330,9000331,9000332,9000333,9000334,9000335,9000336,9000337,9000338,9000339,9000340,9000341,9000342,9000343,9000344,9000345,9000346,9000347,9000348,9000349,9000350,9000351,9000352,9000353,9000354,9000355,9000356,9000357,9000358,9000359,9000360,9000361,9000362,9000363,9000364,9000365,9000366,9000367,9000368,9000369,9000370,9000371,9000372,9000373,9000374,9000375,9000376,9000377,9000378,9000379,9000380,9000381,9000382,9000383,9000384,9000385,9000386,9000387,9000388,9000389,9000390,9000391,9000392,9000393,9000394,9000395,9000396,9000397,9000398,9000399,9000400,9000401,9000402,9000403,9000404,9000405,9000406,9000407,9000408,9000409,9000410,9000411,9000412,9000413,9000414,9000415,9000416,9000417,9000418,9000419,9000420,9000421,9000422,9000423,9000424,9000425,9000426,9000427,9000428,9000429,9000430,9000431,9000432,9000433,9000434,9000435,9000436,9000437,9000438,9000439,9000440,9000441,9000442,9000443,9000444,9000445,9000446,9000447,9000448,9000449,9000450,9000451,9000452,9000453,9000454,9000455,9000456,9000457,9000458,9000459,9000460,9000461,9000462,9000463,9000464,9000465,9000466,9000467,9000468,9000469,9000470,9000471,9000472,9000473,9000474,9000475,9000476,9000477,9000478,9000479,9000480,9000481,9000482,9000483,9000484,9000485,9000486,9000487,9000488,9000489,9000490,9000491,9000492,9000493,9000494,9000495,9000496,9000497,9000498,9000499,9000500,9000501,9000502,9000503,9000504,9000505,9000506,9000507,9000508,9000509,9000510,9000511,9000512,9000513,9000514,9000515,9000516,9000517,9000518,9000519,9000520,9000521,9000522,9000523,9000524,9000525,9000526,9000527,9000528,9000529,9000530,9000531,9000532,9000533,9000534,9000535,9000536,9000537,9000538,9000539,9000540,9000541,9000542,9000543,9000544,9000545,9000546,9000547,9000548,9000549,9000550,9000551,9000552,9000553,9000554,9000555,9000556,9000557,9000558,9000559,9000560,9000561,9000562,9000563,9000564,9000565,9000566,9000567,9000568,9000569,9000570,9000571,9000572,9000573,9000574,9000575,9000576,9000577,9000578,9000579,9000580,9000581,9000582,9000583,9000584,9000585,9000586,9000587,9000588,9000589,9000590,9000591,9000592,9000593,9000594,9000595,9000596,9000597,9000598,9000599,9000600,9000601,9000602,9000603,9000604,9000605,9000606,9000607,9000608,9000609,9000610,9000611,9000612,9000613,9000614,9000615,9000616,9000617,9000618,9000619,9000620,9000621,9000622,9000623,9000624,9000625,9000626,9000627,9000628,9000629,9000630,9000631,9000632,9000633,9000634,9000635,9000636,9000637,9000638,9000639,9000640,9000641,9000642,9000643,9000644,9000645,9000646,9000647,9000648,9000649,9000650,9000651,9000652,9000653,9000654,9000655,9000656,9000657,9000658,9000659,9000660,9000661,9000662,9000663,9000664,9000665,9000666,9000667,9000668,9000669,9000670,9000671,9000672,9000673,9000674,9000675,9000676,9000677,9000678,9000679,9000680,9000681,9000682,9000683,9000684,9000685,9000686,9000687,9000688,9000689,9000690,9000691,9000692,9000693,9000694,9000695,9000696,9000697,9000698,9000699,9000700,9000701,9000702,9000703,9000704,9000705,9000706,9000707,9000708,9000709,9000710,9000711,9000712,9000713,9000714,9000715,9000716,9000717,9000718,9000719,9000720,9000721,9000722,9000723,9000724,9000725,9000726,9000727,9000728,9000729,9000730,9000731,9000732,9000733,9000734,9000735,9000736,9000737,9000738,9000739,9000740,9000741,9000742,9000743,9000744,9000745,9000746,9000747,9000748,9000749,9000750,9000751,9000752,9000753,9000754,9000755,9000756,9000757,9000758,9000759,9000760,9000761,9000762,9000763,9000764,9000765,9000766,9000767,9000768,9000769,9000770,9000771,9000772,9000773,9000774,9000775,9000776,9000777,9000778,9000779,9000780,9000781,9000782,9000783,9000784,9000785,9000786,9000787,9000788,9000789,9000790,9000791,9000792,9000793,9000794,9000795,9000796,9000797,9000798,9000799,9000800,9000801,9000802,9000803,9000804,9000805,9000806,9000807,9000808,9000809,9000810,9000811,9000812,9000813,9000814,9000815,9000816,9000817,9000818,9000819,9000820,9000821,9000822,9000823,9000824,9000825,9000826,9000827,9000828,9000829,9000830,9000831,9000832,9000833,9000834,9000835,9000836,9000837,9000838,9000839,9000840,9000841,9000842,9000843,9000844,9000845,9000846,9000847,9000848,9000849,9000850,9000851,9000852,9000853,9000854,9000855,9000856,9000857,9000858,9000859,9000860,9000861,9000862,9000863,9000864,9000865,9000866,9000867,9000868,9000869,9000870,9000871,9000872,9000873,9000874,9000875,9000876,9000877,9000878,9000879,9000880,9000881,9000882,9000883,9000884,9000885,9000886,9000887,9000888,9000889,9000890,9000891,9000892,9000893,9000894,9000895,9000896,9000897,9000898,9000899,9000900,9000901,9000902,9000903,9000904,9000905,9000906,9000907,9000908,9000909,9000910,9000911,9000912,9000913,9000914,9000915,9000916,9000917,9000918,9000919,9000920,9000921,9000922,9000923,9000924,9000925,9000926,9000927,9000928,9000929,9000930,9000931,9000932,9000933,9000934,9000935,9000936,9000937,9000938,9000939,9000940,9000941,9000942,9000943,9000944,9000945,9000946,9000947,9000948,9000949,9000950,9000951,9000952,9000953,9000954,9000955,9000956,9000957,9000958,9000959,9000960,9000961,9000962,9000963,9000964,9000965,9000966,9000967,9000968,9000969,9000970,9000971,9000972,9000973,9000974,9000975,9000976,9000977,9000978,9000979,9000980,9000981,9000982,9000983,9000984,9000985,9000986,9000987,9000988,9000989,9000990,9000991,9000992,9000993,9000994,9000995,9000996,9000997,9000998,9000999,9001000,10000001,10000002,10000003,10000004,10000005,10000006,10000007,10000008,10000009,10000010,10000011,10000012,10000013,10000014,10000015,10000016,10000017,10000018,10000019,10000020,10000021,10000022,10000023,10000024,10000025,10000026,10000027,10000028,10000029,10000030,10000031,10000032,10000033,10000034,10000035,10000036,10000037,10000038,10000039,10000040,10000041,10000042,10000043,10000044,10000045,10000046,10000047,10000048,10000049,10000050,10000051,10000052,10000053,10000054,10000055,10000056,10000057,10000058,10000059,10000060,10000061,10000062,10000063,10000064,10000065,10000066,10000067,10000068,10000069,10000070,10000071,10000072,10000073,10000074,10000075,10000076,10000077,10000078,10000079,10000080,10000081,10000082,10000083,10000084,10000085,10000086,10000087,10000088,10000089,10000090,10000091,10000092,10000093,10000094,10000095,10000096,10000097,10000098,10000099,10000100,10000101,10000102,10000103,10000104,10000105,10000106,10000107,10000108,10000109,10000110,10000111,10000112,10000113,10000114,10000115,10000116,10000117,10000118,10000119,10000120,10000121,10000122,10000123,10000124,10000125,10000126,10000127,10000128,10000129,10000130,10000131,10000132,10000133,10000134,10000135,10000136,10000137,10000138,10000139,10000140,10000141,10000142,10000143,10000144,10000145,10000146,10000147,10000148,10000149,10000150,10000151,10000152,10000153,10000154,10000155,10000156,10000157,10000158,10000159,10000160,10000161,10000162,10000163,10000164,10000165,10000166,10000167,10000168,10000169,10000170,10000171,10000172,10000173,10000174,10000175,10000176,10000177,10000178,10000179,10000180,10000181,10000182,10000183,10000184,10000185,10000186,10000187,10000188,10000189,10000190,10000191,10000192,10000193,10000194,10000195,10000196,10000197,10000198,10000199,10000200,10000201,10000202,10000203,10000204,10000205,10000206,10000207,10000208,10000209,10000210,10000211,10000212,10000213,10000214,10000215,10000216,10000217,10000218,10000219,10000220,10000221,10000222,10000223,10000224,10000225,10000226,10000227,10000228,10000229,10000230,10000231,10000232,10000233,10000234,10000235,10000236,10000237,10000238,10000239,10000240,10000241,10000242,10000243,10000244,10000245,10000246,10000247,10000248,10000249,10000250,10000251,10000252,10000253,10000254,10000255,10000256,10000257,10000258,10000259,10000260,10000261,10000262,10000263,10000264,10000265,10000266,10000267,10000268,10000269,10000270,10000271,10000272,10000273,10000274,10000275,10000276,10000277,10000278,10000279,10000280,10000281,10000282,10000283,10000284,10000285,10000286,10000287,10000288,10000289,10000290,10000291,10000292,10000293,10000294,10000295,10000296,10000297,10000298,10000299,10000300,10000301,10000302,10000303,10000304,10000305,10000306,10000307,10000308,10000309,10000310,10000311,10000312,10000313,10000314,10000315,10000316,10000317,10000318,10000319,10000320,10000321,10000322,10000323,10000324,10000325,10000326,10000327,10000328,10000329,10000330,10000331,10000332,10000333,10000334,10000335,10000336,10000337,10000338,10000339,10000340,10000341,10000342,10000343,10000344,10000345,10000346,10000347,10000348,10000349,10000350,10000351,10000352,10000353,10000354,10000355,10000356,10000357,10000358,10000359,10000360,10000361,10000362,10000363,10000364,10000365,10000366,10000367,10000368,10000369,10000370,10000371,10000372,10000373,10000374,10000375,10000376,10000377,10000378,10000379,10000380,10000381,10000382,10000383,10000384,10000385,10000386,10000387,10000388,10000389,10000390,10000391,10000392,10000393,10000394,10000395,10000396,10000397,10000398,10000399,10000400,10000401,10000402,10000403,10000404,10000405,10000406,10000407,10000408,10000409,10000410,10000411,10000412,10000413,10000414,10000415,10000416,10000417,10000418,10000419,10000420,10000421,10000422,10000423,10000424,10000425,10000426,10000427,10000428,10000429,10000430,10000431,10000432,10000433,10000434,10000435,10000436,10000437,10000438,10000439,10000440,10000441,10000442,10000443,10000444,10000445,10000446,10000447,10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455,10000456,10000457,10000458,10000459,10000460,10000461,10000462,10000463,10000464,10000465,10000466,10000467,10000468,10000469,10000470,10000471,10000472,10000473,10000474,10000475,10000476,10000477,10000478,10000479,10000480,10000481,10000482,10000483,10000484,10000485,10000486,10000487,10000488,10000489,10000490,10000491,10000492,10000493,10000494,10000495,10000496,10000497,10000498,10000499,10000500,10000501,10000502,10000503,10000504,10000505,10000506,10000507,10000508,10000509,10000510,10000511,10000512,10000513,10000514,10000515,10000516,10000517,10000518,10000519,10000520,10000521,10000522,10000523,10000524,10000525,10000526,10000527,10000528,10000529,10000530,10000531,10000532,10000533,10000534,10000535,10000536,10000537,10000538,10000539,10000540,10000541,10000542,10000543,10000544,10000545,10000546,10000547,10000548,10000549,10000550,10000551,10000552,10000553,10000554,10000555,10000556,10000557,10000558,10000559,10000560,10000561,10000562,10000563,10000564,10000565,10000566,10000567,10000568,10000569,10000570,10000571,10000572,10000573,10000574,10000575,10000576,10000577,10000578,10000579,10000580,10000581,10000582,10000583,10000584,10000585,10000586,10000587,10000588,10000589,10000590,10000591,10000592,10000593,10000594,10000595,10000596,10000597,10000598,10000599,10000600,10000601,10000602,10000603,10000604,10000605,10000606,10000607,10000608,10000609,10000610,10000611,10000612,10000613,10000614,10000615,10000616,10000617,10000618,10000619,10000620,10000621,10000622,10000623,10000624,10000625,10000626,10000627,10000628,10000629,10000630,10000631,10000632,10000633,10000634,10000635,10000636,10000637,10000638,10000639,10000640,10000641,10000642,10000643,10000644,10000645,10000646,10000647,10000648,10000649,10000650,10000651,10000652,10000653,10000654,10000655,10000656,10000657,10000658,10000659,10000660,10000661,10000662,10000663,10000664,10000665,10000666,10000667,10000668,10000669,10000670,10000671,10000672,10000673,10000674,10000675,10000676,10000677,10000678,10000679,10000680,10000681,10000682,10000683,10000684,10000685,10000686,10000687,10000688,10000689,10000690,10000691,10000692,10000693,10000694,10000695,10000696,10000697,10000698,10000699,10000700,10000701,10000702,10000703,10000704,10000705,10000706,10000707,10000708,10000709,10000710,10000711,10000712,10000713,10000714,10000715,10000716,10000717,10000718,10000719,10000720,10000721,10000722,10000723,10000724,10000725,10000726,10000727,10000728,10000729,10000730,10000731,10000732,10000733,10000734,10000735,10000736,10000737,10000738,10000739,10000740,10000741,10000742,10000743,10000744,10000745,10000746,10000747,10000748,10000749,10000750,10000751,10000752,10000753,10000754,10000755,10000756,10000757,10000758,10000759,10000760,10000761,10000762,10000763,10000764,10000765,10000766,10000767,10000768,10000769,10000770,10000771,10000772,10000773,10000774,10000775,10000776,10000777,10000778,10000779,10000780,10000781,10000782,10000783,10000784,10000785,10000786,10000787,10000788,10000789,10000790,10000791,10000792,10000793,10000794,10000795,10000796,10000797,10000798,10000799,10000800,10000801,10000802,10000803,10000804,10000805,10000806,10000807,10000808,10000809,10000810,10000811,10000812,10000813,10000814,10000815,10000816,10000817,10000818,10000819,10000820,10000821,10000822,10000823,10000824,10000825,10000826,10000827,10000828,10000829,10000830,10000831,10000832,10000833,10000834,10000835,10000836,10000837,10000838,10000839,10000840,10000841,10000842,10000843,10000844,10000845,10000846,10000847,10000848,10000849,10000850,10000851,10000852,10000853,10000854,10000855,10000856,10000857,10000858,10000859,10000860,10000861,10000862,10000863,10000864,10000865,10000866,10000867,10000868,10000869,10000870,10000871,10000872,10000873,10000874,10000875,10000876,10000877,10000878,10000879,10000880,10000881,10000882,10000883,10000884,10000885,10000886,10000887,10000888,10000889,10000890,10000891,10000892,10000893,10000894,10000895,10000896,10000897,10000898,10000899,10000900,10000901,10000902,10000903,10000904,10000905,10000906,10000907,10000908,10000909,10000910,10000911,10000912,10000913,10000914,10000915,10000916,10000917,10000918,10000919,10000920,10000921,10000922,10000923,10000924,10000925,10000926,10000927,10000928,10000929,10000930,10000931,10000932,10000933,10000934,10000935,10000936,10000937,10000938,10000939,10000940,10000941,10000942,10000943,10000944,10000945,10000946,10000947,10000948,10000949,10000950,10000951,10000952,10000953,10000954,10000955,10000956,10000957,10000958,10000959,10000960,10000961,10000962,10000963,10000964,10000965,10000966,10000967,10000968,10000969,10000970,10000971,10000972,10000973,10000974,10000975,10000976,10000977,10000978,10000979,10000980,10000981,10000982,10000983,10000984,10000985,10000986,10000987,10000988,10000989,10000990,10000991,10000992,10000993,10000994,10000995,10000996,10000997,10000998,10000999,10001000] + - name: col_bigint_card3_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: JOING9_1_join_on_3tbls_withfilter_onpkey + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=hashpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_2_join_on_3tbls_withfilter_onskey + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=hashskey,filtertype=IN,queryshape=join,joinon=hashpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_card2_1 in (1000500) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_3_join_on_3tbls_withfilter_onpkey_subquery + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=subquery,queryshape=join,joinon=hashpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_2.col_bigint_card1_1 IN (select distinct(col_bigint_card1_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_4_join_on_3tbls_withfilter_onskey_subquery + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=hashskey,filtertype=subquery,queryshape=join,joinon=hashpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1,pkeyBigint1M_2,pkeyBigint1M_3 where pkeyBigint1M_2.col_bigint_card2_1 IN (select distinct(col_bigint_card2_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 + + - workload: JOING9_5_cascade_join_3tbls_withfilter_onpkey + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=hashpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1 JOIN pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 JOIN pkeyBigint1M_3 on pkeyBigint1M_2.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) + + - workload: JOING9_6_join_on_pkey_2ndpart_3tbls_withfilter_onskey + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=IN,queryshape=join,joinon=mixedpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_1 from pkeyBigint1M_1 JOIN pkeyBigint1M_2 on pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1 JOIN pkeyBigint1M_3 on pkeyBigint1M_2.col_bigint_card1_1=pkeyBigint1M_3.col_bigint_card1_1 where pkeyBigint1M_1.col_bigint_card1_1 in (1000500) + + - workload: JOING9_7_join_cte_on_3tbls_withfilter_onpkey_subquery + customTags: schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=subquery,queryshape=join,joinon=mixedpkey,jointables=three,joinconditions=two + run: + - name: join_on_pk_3tbl + weight: 100 + queries: + - query: With v1 as (select pkeyBigint1M_1.col_bigint_id_1, pkeyBigint1M_2.col_bigint_id_2 from pkeyBigint1M_1,pkeyBigint1M_2 where pkeyBigint1M_2.col_bigint_card1_1 IN (select distinct(col_bigint_card1_1) from pkeyBigint1M_1 where col_bigint_card1_1 in (1000500)) and pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_2.col_bigint_id_1), v2 as (select pkeyBigint1M_3.col_bigint_id_1, pkeyBigint1M_3.col_bigint_id_2 from pkeyBigint1M_1,pkeyBigint1M_3 where pkeyBigint1M_1.col_bigint_id_1=pkeyBigint1M_3.col_bigint_id_1) select v1.col_bigint_id_1, v1.col_bigint_id_2, v2.col_bigint_id_1, v2.col_bigint_id_2 from v1 join v2 on v1.col_bigint_id_1=v2.col_bigint_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/locking_semantics/postgres/select_update_readcommitted.yaml b/config/yugabyte/regression_pipelines/locking_semantics/postgres/select_update_readcommitted.yaml new file mode 100644 index 000000000..236e27a40 --- /dev/null +++ b/config/yugabyte/regression_pipelines/locking_semantics/postgres/select_update_readcommitted.yaml @@ -0,0 +1,58 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_READ_COMMITTED +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + cleanup: + - drop table if exists update_test_table1; + loadRules: + - table: update_test_table1 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: select_update_key_from_multiple_threads_with_weights_100 + run: + - name: update_same_key + weight: 100 + queries: + - query: select * from update_test_table1 where id = 1 for update + - query: select pg_sleep(0.001) + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/locking_semantics/postgres/single_row_updates_with_varying_lock_contentions.yaml b/config/yugabyte/regression_pipelines/locking_semantics/postgres/single_row_updates_with_varying_lock_contentions.yaml new file mode 100644 index 000000000..b613c36ed --- /dev/null +++ b/config/yugabyte/regression_pipelines/locking_semantics/postgres/single_row_updates_with_varying_lock_contentions.yaml @@ -0,0 +1,132 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + cleanup: + - drop table if exists update_test_table1; + loadRules: + - table: update_test_table1 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_key_from_multiple_threads_with_weights_100 + run: + - name: update_same_key + weight: 100 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + + - workload: update_key_from_multiple_threads_with_weights_80 + run: + - name: update_same_key + weight: 80 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 20 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_60 + run: + - name: update_same_key + weight: 60 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 40 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_40 + run: + - name: update_same_key + weight: 40 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 60 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_20 + run: + - name: update_same_key + weight: 20 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 80 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] diff --git a/config/yugabyte/regression_pipelines/locking_semantics/yb_colocated/select_update_readcommitted.yaml b/config/yugabyte/regression_pipelines/locking_semantics/yb_colocated/select_update_readcommitted.yaml new file mode 100644 index 000000000..013577bad --- /dev/null +++ b/config/yugabyte/regression_pipelines/locking_semantics/yb_colocated/select_update_readcommitted.yaml @@ -0,0 +1,60 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_READ_COMMITTED +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + cleanup: + - drop table if exists update_test_table1; + loadRules: + - table: update_test_table1 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: select_update_key_from_multiple_threads_with_weights_100 + run: + - name: update_same_key + weight: 100 + queries: + - query: select * from update_test_table1 where id = 1 for update + - query: select pg_sleep(0.001) + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/locking_semantics/yb_colocated/single_row_updates_with_varying_lock_contentions.yaml b/config/yugabyte/regression_pipelines/locking_semantics/yb_colocated/single_row_updates_with_varying_lock_contentions.yaml new file mode 100644 index 000000000..609a16ca5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/locking_semantics/yb_colocated/single_row_updates_with_varying_lock_contentions.yaml @@ -0,0 +1,134 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + cleanup: + - drop table if exists update_test_table1; + loadRules: + - table: update_test_table1 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_key_from_multiple_threads_with_weights_100 + run: + - name: update_same_key + weight: 100 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + + - workload: update_key_from_multiple_threads_with_weights_80 + run: + - name: update_same_key + weight: 80 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 20 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_60 + run: + - name: update_same_key + weight: 60 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 40 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_40 + run: + - name: update_same_key + weight: 40 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 60 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_20 + run: + - name: update_same_key + weight: 20 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 80 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] diff --git a/config/yugabyte/regression_pipelines/locking_semantics/yugabyte/select_update_readcommitted.yaml b/config/yugabyte/regression_pipelines/locking_semantics/yugabyte/select_update_readcommitted.yaml new file mode 100644 index 000000000..a742d9eb2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/locking_semantics/yugabyte/select_update_readcommitted.yaml @@ -0,0 +1,59 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_READ_COMMITTED +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + cleanup: + - drop table if exists update_test_table1; + loadRules: + - table: update_test_table1 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: select_update_key_from_multiple_threads_with_weights_100 + run: + - name: update_same_key + weight: 100 + queries: + - query: select * from update_test_table1 where id = 1 for update + - query: select pg_sleep(0.001) + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/locking_semantics/yugabyte/single_row_updates_with_varying_lock_contentions.yaml b/config/yugabyte/regression_pipelines/locking_semantics/yugabyte/single_row_updates_with_varying_lock_contentions.yaml new file mode 100644 index 000000000..7f24e18ac --- /dev/null +++ b/config/yugabyte/regression_pipelines/locking_semantics/yugabyte/single_row_updates_with_varying_lock_contentions.yaml @@ -0,0 +1,133 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + cleanup: + - drop table if exists update_test_table1; + loadRules: + - table: update_test_table1 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_key_from_multiple_threads_with_weights_100 + run: + - name: update_same_key + weight: 100 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + + - workload: update_key_from_multiple_threads_with_weights_80 + run: + - name: update_same_key + weight: 80 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 20 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_60 + run: + - name: update_same_key + weight: 60 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 40 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_40 + run: + - name: update_same_key + weight: 40 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 60 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] + + - workload: update_key_from_multiple_threads_with_weights_20 + run: + - name: update_same_key + weight: 20 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = 1 + bindings: + - util: RandomAString + params: [20, 20] + - name: update_diff_key + weight: 80 + queries: + - query: update update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomInt + params: [100, 10000] diff --git a/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_pg.yaml b/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_pg.yaml new file mode 100644 index 000000000..1d6a3537f --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_pg.yaml @@ -0,0 +1,357 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +disable_explain: true +works: + work: + time_secs: 1800 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + - create table nets_10M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_50M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_100M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_200M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + + cleanup: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + + loadRules: + + - table: nets_10M_ + count: 1 + rows: 10000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_50M_ + count: 1 + rows: 50000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_100M_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_200M_ + count: 1 + rows: 200000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + + - workload: MG1_1_Analyze_50M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_50M_1 + + - workload: MG1_2_Analyze_100M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_100M_1 + + - workload: MG1_3_Analyze_200M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_200M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_yb.yaml b/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_yb.yaml new file mode 100644 index 000000000..85f4e7a48 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_yb.yaml @@ -0,0 +1,357 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +disable_explain: true +works: + work: + time_secs: 1800 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + - create table nets_10M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + - create table nets_50M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + - create table nets_100M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + - create table nets_200M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + + cleanup: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + + loadRules: + + - table: nets_10M_ + count: 1 + rows: 10000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_50M_ + count: 1 + rows: 50000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_100M_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_200M_ + count: 1 + rows: 200000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + + - workload: MG1_1_Analyze_50M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_50M_1 + + - workload: MG1_2_Analyze_100M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_100M_1 + + - workload: MG1_3_Analyze_200M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_200M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_yb_colocated.yaml b/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_yb_colocated.yaml new file mode 100644 index 000000000..9e46215a3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/MG1_analyze_table_yb_colocated.yaml @@ -0,0 +1,358 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +disable_explain: true +works: + work: + time_secs: 1800 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + - create table nets_10M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_50M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_100M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_200M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + + cleanup: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + + loadRules: + + - table: nets_10M_ + count: 1 + rows: 10000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_50M_ + count: 1 + rows: 50000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_100M_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_200M_ + count: 1 + rows: 200000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + + - workload: MG1_1_Analyze_50M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_50M_1 + + - workload: MG1_2_Analyze_100M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_100M_1 + + - workload: MG1_3_Analyze_200M + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_200M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/miscellaneous/postgres/MG2_multi_statement_transaction.yaml b/config/yugabyte/regression_pipelines/miscellaneous/postgres/MG2_multi_statement_transaction.yaml new file mode 100644 index 000000000..ec6621086 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/postgres/MG2_multi_statement_transaction.yaml @@ -0,0 +1,134 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + - CREATE TABLE IF NOT EXISTS users_1(user_id_1 bigint, user_name_1 varchar(10), addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(user_id_1)); + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts ON accounts_1( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS audit_table_1(account_id_1 bigint, event_id_1 date, user_id_1 bigint, delta_1 float(2), PRIMARY KEY(account_id_1, event_id_1)); + + cleanup: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + + loadRules: + - table: users_ + count: 1 + rows: 1000000 + columns: + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_name_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: accounts_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: audit_table_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: event_id_ + count: 1 + util: PrimaryDateGen + params: [2000000] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: delta_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + + executeRules: + - workload: MG2_1_multi_statement_transaction_run1 + customTags: customer=10,schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO audit_table_1(account_id_1, event_id_1, user_id_1, delta_1) VALUES(?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 2000000, 10000000000 ] + - util: PrimaryDateGen + params: [ 100000000 ] + - util: PrimaryIntGen + params: [ 2000000, 10000000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - query: UPDATE accounts_1 SET bal_1 = ? WHERE account_id_1 = ? and user_id_1 = ? + bindings: + - util: RandomNoWithDecimalPoints + params: [ 1000000, 10000000, 2 ] + - util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - query: SELECT bal_1 FROM accounts_1 WHERE account_id_1 = ? + bindings: + - util: RandomInt + params: [ 1, 1000000 ] + - query: UPDATE users_1 SET bal_1 = bal_1 + ? WHERE user_id_1 = ? + bindings: + - util: RandomInt + params: [ 1, 100 ] + - util: RandomInt + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/miscellaneous/postgres/MG3_multi_statement_json_trigger_index.yaml b/config/yugabyte/regression_pipelines/miscellaneous/postgres/MG3_multi_statement_json_trigger_index.yaml new file mode 100644 index 000000000..cc3abb119 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/postgres/MG3_multi_statement_json_trigger_index.yaml @@ -0,0 +1,288 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table if exists update_test_table1_varchar_json_col5_16_1; + - drop table if exists update_test_table1_varchar_json_col5_16_2; + - drop table if exists update_test_table1_varchar_json_col5_16_3; + - CREATE TABLE update_test_table1_varchar_json_col5_16_1 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE TABLE update_test_table1_varchar_json_col5_16_2 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_2(vcol1); + - CREATE TABLE update_test_table1_varchar_json_col5_16_3 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_3(vcol1); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_3(count); + - CREATE OR REPLACE FUNCTION trigger_function() RETURNS TRIGGER LANGUAGE PLPGSQL AS $$ BEGIN NEW.count = NEW.count + 1; RETURN NEW; END; $$ + - CREATE TRIGGER update_test_table1_varchar_json_col5_16_3_trigger BEFORE UPDATE on update_test_table1_varchar_json_col5_16_3 FOR EACH ROW EXECUTE PROCEDURE trigger_function() + + + cleanup: + - drop table if exists update_test_table1_varchar_json_col5_16_1; + - drop table if exists update_test_table1_varchar_json_col5_16_2; + - drop table if exists update_test_table1_varchar_json_col5_16_3; + + + loadRules: + + - table: update_test_table1_varchar_json_col5_16_ + count: 3 + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: vcol1 + util: RandomAString + params: [ 255, 255 ] + - name: vcol2 + util: RandomAString + params: [ 255, 255 ] + - name: vcol3 + util: RandomAString + params: [ 255, 255 ] + - name: vcol4 + util: RandomAString + params: [ 255, 255 ] + - name: vcol5 + util: RandomAString + params: [ 255, 255 ] + - name: col1 + util: RandomJson + params: [ 5, 16 ] + - name: col2 + util: RandomJson + params: [ 5, 16 ] + - name: col3 + util: RandomJson + params: [ 5, 16 ] + - name: col4 + util: RandomJson + params: [ 5, 16 ] + - name: col5 + util: RandomJson + params: [ 5, 16 ] + - name: count + util: RandomNumber + params: [1, 5] + executeRules: + + - workload: update_test_table1_varchar_json_col5_16_1 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_1 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_1 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_1 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + + - workload: update_test_table1_varchar_json_col5_16_2 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_2 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_2 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_2 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + - workload: update_test_table1_varchar_json_col5_16_3 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_3 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_3 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_3 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + - workload: update_test_table1_varchar_json_col5_16_4 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_3 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_3 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_3 set vcol1 = ?, vcol2 = ?, vcol3 = ?, col1 = ? ::jsonb, col2 = ? ::jsonb, col3 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] diff --git a/config/yugabyte/regression_pipelines/miscellaneous/postgres/default_sequence_caching.yaml b/config/yugabyte/regression_pipelines/miscellaneous/postgres/default_sequence_caching.yaml new file mode 100644 index 000000000..b22c1f954 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/postgres/default_sequence_caching.yaml @@ -0,0 +1,75 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop sequence if exists seq1; + - create sequence seq1; + - drop table if exists seq_test_1; + - create table seq_test_1 (id serial, col_int_1 int, col_int_2 int, col_int_3 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + cleanup: + - drop sequence if exists seq1; + - drop table if exists seq_test_1; + loadRules: + - table: seq_test_ + count: 1 + rows: 100000 + columns: + - name: col_int_ + count: 3 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: concurrent_nextval + run: + - name: concurrent_nextval + weight: 100 + queries: + - query: select nextval('seq1') + + - workload: concurrent_insert_with_serial_pkey + run: + - name: concurrent_insert_with_serial_pkey + weight: 100 + queries: + - query: INSERT INTO seq_test_1 (col_int_1, col_int_2, col_int_3, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?,?,?,?,?,?,?,?) + bindings: + - util: RandomNumber + count: 3 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean diff --git a/config/yugabyte/regression_pipelines/miscellaneous/postgres/retention_impact.yaml b/config/yugabyte/regression_pipelines/miscellaneous/postgres/retention_impact.yaml new file mode 100644 index 000000000..e09f272f9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/postgres/retention_impact.yaml @@ -0,0 +1,174 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 6 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 3600 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_1; + - create table nets_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + + cleanup: + - drop table IF EXISTS nets_1; + + loadRules: + - table: nets_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + - workload: Retention_pre_workload_run1 + time_secs: 300 + run: + - name: NetG1_1_select_query + weight: 100 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] + - workload: Retention_mixed_workload_run2 + time_secs: 3600 + run: + - name: NetG1_1_update_query + weight: 50 + queries: + - query: UPDATE nets_1 SET shard_id_1 = shard_id_1 + 1 WHERE db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 21, 50 ] + - name: NetG1_2_delete_query + weight: 10 + queries: + - query: delete from nets_1 where db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 150 , 10] + - util: RandomInt + params: [ 1, 20 ] + - name: NetG1_3_scan_query_pointselect + weight: 40 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] + - workload: Retention_post_workload_run3 + time_secs: 300 + run: + - name: NetG1_1_select_query + weight: 100 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] diff --git a/config/yugabyte/regression_pipelines/miscellaneous/retention_impact.yaml b/config/yugabyte/regression_pipelines/miscellaneous/retention_impact.yaml new file mode 100644 index 000000000..5c546e8cd --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/retention_impact.yaml @@ -0,0 +1,138 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 6 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 3600 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_1; + - create table nets_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + + cleanup: + - drop table IF EXISTS nets_1; + + loadRules: + - table: nets_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + - workload: NetG1_query1 + run: + - name: NetG1_1_update_query + weight: 50 + queries: + - query: UPDATE nets_1 SET shard_id_1 = shard_id_1 + 1 WHERE db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 21, 50 ] + - name: NetG1_2_delete_query + weight: 10 + queries: + - query: delete from nets_1 where db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 150 , 10] + - util: RandomInt + params: [ 1, 20 ] + - name: NetG1_3_scan_query_pointselect + weight: 40 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/MG2_multi_statement_transaction.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/MG2_multi_statement_transaction.yaml new file mode 100644 index 000000000..40601a5fb --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/MG2_multi_statement_transaction.yaml @@ -0,0 +1,136 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + - CREATE TABLE IF NOT EXISTS users_1(user_id_1 bigint, user_name_1 varchar(10), addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(user_id_1)); + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts ON accounts_1( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS audit_table_1(account_id_1 bigint, event_id_1 date, user_id_1 bigint, delta_1 float(2), PRIMARY KEY(account_id_1, event_id_1)); + + cleanup: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + + loadRules: + - table: users_ + count: 1 + rows: 1000000 + columns: + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_name_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: accounts_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: audit_table_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: event_id_ + count: 1 + util: PrimaryDateGen + params: [2000000] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: delta_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + + executeRules: + - workload: MG2_1_multi_statement_transaction_run1 + customTags: customer=10,schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO audit_table_1(account_id_1, event_id_1, user_id_1, delta_1) VALUES(?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 2000000, 10000000000 ] + - util: PrimaryDateGen + params: [ 100000000 ] + - util: PrimaryIntGen + params: [ 2000000, 10000000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - query: UPDATE accounts_1 SET bal_1 = ? WHERE account_id_1 = ? and user_id_1 = ? + bindings: + - util: RandomNoWithDecimalPoints + params: [ 1000000, 10000000, 2 ] + - util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - query: SELECT bal_1 FROM accounts_1 WHERE account_id_1 = ? + bindings: + - util: RandomInt + params: [ 1, 1000000 ] + - query: UPDATE users_1 SET bal_1 = bal_1 + ? WHERE user_id_1 = ? + bindings: + - util: RandomInt + params: [ 1, 100 ] + - util: RandomInt + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/MG3_multi_statement_json_trigger_index.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/MG3_multi_statement_json_trigger_index.yaml new file mode 100644 index 000000000..a21d29d8f --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/MG3_multi_statement_json_trigger_index.yaml @@ -0,0 +1,290 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table if exists update_test_table1_varchar_json_col5_16_1; + - drop table if exists update_test_table1_varchar_json_col5_16_2; + - drop table if exists update_test_table1_varchar_json_col5_16_3; + - CREATE TABLE update_test_table1_varchar_json_col5_16_1 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE TABLE update_test_table1_varchar_json_col5_16_2 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_2(vcol1); + - CREATE TABLE update_test_table1_varchar_json_col5_16_3 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_3(vcol1); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_3(count); + - CREATE OR REPLACE FUNCTION trigger_function() RETURNS TRIGGER LANGUAGE PLPGSQL AS $$ BEGIN NEW.count = NEW.count + 1; RETURN NEW; END; $$ + - CREATE TRIGGER update_test_table1_varchar_json_col5_16_3_trigger BEFORE UPDATE on update_test_table1_varchar_json_col5_16_3 FOR EACH ROW EXECUTE PROCEDURE trigger_function() + + + cleanup: + - drop table if exists update_test_table1_varchar_json_col5_16_1; + - drop table if exists update_test_table1_varchar_json_col5_16_2; + - drop table if exists update_test_table1_varchar_json_col5_16_3; + + + loadRules: + + - table: update_test_table1_varchar_json_col5_16_ + count: 3 + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: vcol1 + util: RandomAString + params: [ 255, 255 ] + - name: vcol2 + util: RandomAString + params: [ 255, 255 ] + - name: vcol3 + util: RandomAString + params: [ 255, 255 ] + - name: vcol4 + util: RandomAString + params: [ 255, 255 ] + - name: vcol5 + util: RandomAString + params: [ 255, 255 ] + - name: col1 + util: RandomJson + params: [ 5, 16 ] + - name: col2 + util: RandomJson + params: [ 5, 16 ] + - name: col3 + util: RandomJson + params: [ 5, 16 ] + - name: col4 + util: RandomJson + params: [ 5, 16 ] + - name: col5 + util: RandomJson + params: [ 5, 16 ] + - name: count + util: RandomNumber + params: [1, 5] + executeRules: + + - workload: update_test_table1_varchar_json_col5_16_1 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_1 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_1 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_1 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + + - workload: update_test_table1_varchar_json_col5_16_2 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_2 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_2 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_2 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + - workload: update_test_table1_varchar_json_col5_16_3 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_3 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_3 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_3 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + - workload: update_test_table1_varchar_json_col5_16_4 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_3 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_3 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_3 set vcol1 = ?, vcol2 = ?, vcol3 = ?, col1 = ? ::jsonb, col2 = ? ::jsonb, col3 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/default_sequence_caching.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/default_sequence_caching.yaml new file mode 100644 index 000000000..540db33e7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/default_sequence_caching.yaml @@ -0,0 +1,77 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop sequence if exists seq1; + - create sequence seq1; + - drop table if exists seq_test_1; + - create table seq_test_1 (id serial, col_int_1 int, col_int_2 int, col_int_3 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + cleanup: + - drop sequence if exists seq1; + - drop table if exists seq_test_1; + loadRules: + - table: seq_test_ + count: 1 + rows: 100000 + columns: + - name: col_int_ + count: 3 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: concurrent_nextval + run: + - name: concurrent_nextval + weight: 100 + queries: + - query: select nextval('seq1') + + - workload: concurrent_insert_with_serial_pkey + run: + - name: concurrent_insert_with_serial_pkey + weight: 100 + queries: + - query: INSERT INTO seq_test_1 (col_int_1, col_int_2, col_int_3, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?,?,?,?,?,?,?,?) + bindings: + - util: RandomNumber + count: 3 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/retention_impact.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/retention_impact.yaml new file mode 100644 index 000000000..9a35186a1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yb_colocated/retention_impact.yaml @@ -0,0 +1,176 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 6 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 3600 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_1; + - create table nets_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + + cleanup: + - drop table IF EXISTS nets_1; + + loadRules: + - table: nets_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + - workload: Retention_pre_workload_run1 + time_secs: 300 + run: + - name: NetG1_1_select_query + weight: 100 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] + - workload: Retention_mixed_workload_run2 + time_secs: 3600 + run: + - name: NetG1_1_update_query + weight: 50 + queries: + - query: UPDATE nets_1 SET shard_id_1 = shard_id_1 + 1 WHERE db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 21, 50 ] + - name: NetG1_2_delete_query + weight: 10 + queries: + - query: delete from nets_1 where db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 150 , 10] + - util: RandomInt + params: [ 1, 20 ] + - name: NetG1_3_scan_query_pointselect + weight: 40 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] + - workload: Retention_post_workload_run3 + time_secs: 300 + run: + - name: NetG1_1_select_query + weight: 100 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/MG2_multi_statement_transaction.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/MG2_multi_statement_transaction.yaml new file mode 100644 index 000000000..1b7fd3d16 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/MG2_multi_statement_transaction.yaml @@ -0,0 +1,135 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + - CREATE TABLE IF NOT EXISTS users_1(user_id_1 bigint, user_name_1 varchar(10), addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(user_id_1)); + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, user_id_1 bigint, addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(account_id_1)); + - CREATE UNIQUE INDEX user_accounts ON accounts_1( user_id_1, account_id_1); + - CREATE TABLE IF NOT EXISTS audit_table_1(account_id_1 bigint, event_id_1 date, user_id_1 bigint, delta_1 float(2), PRIMARY KEY(account_id_1, event_id_1)); + + cleanup: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + + loadRules: + - table: users_ + count: 1 + rows: 1000000 + columns: + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_name_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: accounts_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: audit_table_ + count: 1 + rows: 1000000 + columns: + - name: account_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: event_id_ + count: 1 + util: PrimaryDateGen + params: [2000000] + - name: user_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: delta_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + + executeRules: + - workload: MG2_1_multi_statement_transaction_run1 + customTags: customer=10,schematype=regular,partition=hash,pkey=composite,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO audit_table_1(account_id_1, event_id_1, user_id_1, delta_1) VALUES(?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 2000000, 10000000000 ] + - util: PrimaryDateGen + params: [ 100000000 ] + - util: PrimaryIntGen + params: [ 2000000, 10000000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - query: UPDATE accounts_1 SET bal_1 = ? WHERE account_id_1 = ? and user_id_1 = ? + bindings: + - util: RandomNoWithDecimalPoints + params: [ 1000000, 10000000, 2 ] + - util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - util: CyclicSeqIntGen + params: [ 1, 1000000 ] + - query: SELECT bal_1 FROM accounts_1 WHERE account_id_1 = ? + bindings: + - util: RandomInt + params: [ 1, 1000000 ] + - query: UPDATE users_1 SET bal_1 = bal_1 + ? WHERE user_id_1 = ? + bindings: + - util: RandomInt + params: [ 1, 100 ] + - util: RandomInt + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/MG3_multi_statement_json_trigger_index.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/MG3_multi_statement_json_trigger_index.yaml new file mode 100644 index 000000000..45881199b --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/MG3_multi_statement_json_trigger_index.yaml @@ -0,0 +1,289 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table if exists update_test_table1_varchar_json_col5_16_1; + - drop table if exists update_test_table1_varchar_json_col5_16_2; + - drop table if exists update_test_table1_varchar_json_col5_16_3; + - CREATE TABLE update_test_table1_varchar_json_col5_16_1 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE TABLE update_test_table1_varchar_json_col5_16_2 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_2(vcol1); + - CREATE TABLE update_test_table1_varchar_json_col5_16_3 (id INT, vcol1 varchar(255), vcol2 varchar(255), vcol3 varchar(255), vcol4 varchar(255), vcol5 varchar(255), col1 jsonb, col2 jsonb, col3 jsonb, col4 jsonb, col5 jsonb, count int, primary key(id)); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_3(vcol1); + - CREATE INDEX ON update_test_table1_varchar_json_col5_16_3(count); + - CREATE OR REPLACE FUNCTION trigger_function() RETURNS TRIGGER LANGUAGE PLPGSQL AS $$ BEGIN NEW.count = NEW.count + 1; RETURN NEW; END; $$ + - CREATE TRIGGER update_test_table1_varchar_json_col5_16_3_trigger BEFORE UPDATE on update_test_table1_varchar_json_col5_16_3 FOR EACH ROW EXECUTE PROCEDURE trigger_function() + + + cleanup: + - drop table if exists update_test_table1_varchar_json_col5_16_1; + - drop table if exists update_test_table1_varchar_json_col5_16_2; + - drop table if exists update_test_table1_varchar_json_col5_16_3; + + + loadRules: + + - table: update_test_table1_varchar_json_col5_16_ + count: 3 + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: vcol1 + util: RandomAString + params: [ 255, 255 ] + - name: vcol2 + util: RandomAString + params: [ 255, 255 ] + - name: vcol3 + util: RandomAString + params: [ 255, 255 ] + - name: vcol4 + util: RandomAString + params: [ 255, 255 ] + - name: vcol5 + util: RandomAString + params: [ 255, 255 ] + - name: col1 + util: RandomJson + params: [ 5, 16 ] + - name: col2 + util: RandomJson + params: [ 5, 16 ] + - name: col3 + util: RandomJson + params: [ 5, 16 ] + - name: col4 + util: RandomJson + params: [ 5, 16 ] + - name: col5 + util: RandomJson + params: [ 5, 16 ] + - name: count + util: RandomNumber + params: [1, 5] + executeRules: + + - workload: update_test_table1_varchar_json_col5_16_1 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_1 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_1 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_1 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + + - workload: update_test_table1_varchar_json_col5_16_2 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_2 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_2 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_2 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + - workload: update_test_table1_varchar_json_col5_16_3 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_3 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_3 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_3 set vcol1 = ?, col2 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] + + - workload: update_test_table1_varchar_json_col5_16_4 + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: insert into update_test_table1_varchar_json_col5_16_3 (id,vcol1,vcol2,vcol3,vcol4,vcol5,col1,col2,col3,col4,col5,count) VALUES (?,?,?,?,?,?,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?::jsonb,?) + count: 1 + bindings: + - util: PrimaryIntGen + params: [ 100001, 10000000 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - query: select vcol2 from update_test_table1_varchar_json_col5_16_3 where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 100000 ] + - query: update update_test_table1_varchar_json_col5_16_3 set vcol1 = ?, vcol2 = ?, vcol3 = ?, col1 = ? ::jsonb, col2 = ? ::jsonb, col3 = ? ::jsonb, count = ? where id = ? + count: 1 + bindings: + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomAString + params: [ 255, 255 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomJson + params: [ 5, 16 ] + - util: RandomNumber + params: [1, 5] + - util: RandomNumber + params: [ 1, 100000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/default_sequence_caching.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/default_sequence_caching.yaml new file mode 100644 index 000000000..efc0c3509 --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/default_sequence_caching.yaml @@ -0,0 +1,76 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop sequence if exists seq1; + - create sequence seq1; + - drop table if exists seq_test_1; + - create table seq_test_1 (id serial, col_int_1 int, col_int_2 int, col_int_3 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + cleanup: + - drop sequence if exists seq1; + - drop table if exists seq_test_1; + loadRules: + - table: seq_test_ + count: 1 + rows: 100000 + columns: + - name: col_int_ + count: 3 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: concurrent_nextval + run: + - name: concurrent_nextval + weight: 100 + queries: + - query: select nextval('seq1') + + - workload: concurrent_insert_with_serial_pkey + run: + - name: concurrent_insert_with_serial_pkey + weight: 100 + queries: + - query: INSERT INTO seq_test_1 (col_int_1, col_int_2, col_int_3, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?,?,?,?,?,?,?,?) + bindings: + - util: RandomNumber + count: 3 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean diff --git a/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/retention_impact.yaml b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/retention_impact.yaml new file mode 100644 index 000000000..56be35f5a --- /dev/null +++ b/config/yugabyte/regression_pipelines/miscellaneous/yugabyte/retention_impact.yaml @@ -0,0 +1,175 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 6 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 3600 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_1; + - create table nets_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + + cleanup: + - drop table IF EXISTS nets_1; + + loadRules: + - table: nets_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + - workload: Retention_pre_workload_run1 + time_secs: 300 + run: + - name: NetG1_1_select_query + weight: 100 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] + - workload: Retention_mixed_workload_run2 + time_secs: 3600 + run: + - name: NetG1_1_update_query + weight: 50 + queries: + - query: UPDATE nets_1 SET shard_id_1 = shard_id_1 + 1 WHERE db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 21, 50 ] + - name: NetG1_2_delete_query + weight: 10 + queries: + - query: delete from nets_1 where db_user_id_1 = ? and shard_id_1 = ? + bindings: + - util: HashedRandomString + params: [ 1, 150 , 10] + - util: RandomInt + params: [ 1, 20 ] + - name: NetG1_3_scan_query_pointselect + weight: 40 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] + - workload: Retention_post_workload_run3 + time_secs: 300 + run: + - name: NetG1_1_select_query + weight: 100 + queries: + - query: select work_id_1,owner_1,state_1,sequence_id_1 from nets_1 where db_user_id_1 = ? and shard_id_1 = ANY(ARRAY[?,?,?,?]) + bindings: + - util: HashedRandomString + params: [ 1, 500, 10] + - util: RandomInt + params: [ 1, 20 ] + - util: RandomInt + params: [ 21, 30 ] + - util: RandomInt + params: [ 31, 40 ] + - util: RandomInt + params: [ 41, 50 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG2_index_filter_condition_type_impact.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG2_index_filter_condition_type_impact.yaml new file mode 100644 index 000000000..3dfc8a819 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG2_index_filter_condition_type_impact.yaml @@ -0,0 +1,98 @@ +#TEST FOR POSTGRES +#GOAL2 Impact of index type on Orderby +#TESTS: +#Orderby clause with 1 filter condition on non indexed column of bigint datatype +#Orderby clause with 1 filter condition on pkey of bigint datatype +#Orderby clause on with 1 filter condition secondary indexed column of bigint datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG2_ordby_bigint_non_indexed_column + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_3 from Indexed1M_1 where col_bigint_id_3>1 order by col_bigint_id_3 + - workload: ORDG2_ordby_bigint_pkey_column + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 + - workload: ORDG2_ordby_bigint_secondary_indexed_column + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from Indexed1M_1 where col_bigint_id_2>1 order by col_bigint_id_2 + - workload: ORDG2_ordby_bigint_pkey_column_projectall + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select * from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG3_impact_of_datatype.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG3_impact_of_datatype.yaml new file mode 100644 index 000000000..4864281e1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG3_impact_of_datatype.yaml @@ -0,0 +1,164 @@ +#TEST FOR POSTGRES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on PKEY of bigint datatype +#Impact of orderby clause on PKEY of varchar datatype +#Impact of orderby clause on PKEY of uuid datatype +#Impact of orderby clause on PKEY of date datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyUuid1M_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyVarchar1001M_1(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1)); + - CREATE TABLE pkeyUuid1M_1(col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_uuid_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyUuid1M_1; + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG3_ordby_bigint_pkey_column + run: + - name: pg_ordby_bigint_pkey_column + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint1M_1 order by col_bigint_id_1 + - workload: ORDG3_ordby_varchar_pkey_column + run: + - name: pg_ordby_varchar_pkey_column + weight: 100 + queries: + - query: select col_varchar100_pid_1 from pkeyVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG3_ordby_uuid_pkey_column + run: + - name: pg_ordby_uuid_pkey_column + weight: 100 + queries: + - query: select col_uuid_id_1 from pkeyUuid1M_1 order by col_uuid_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG4_impact_of_datatype_with_sec_ind.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG4_impact_of_datatype_with_sec_ind.yaml new file mode 100644 index 000000000..b493da50b --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG4_impact_of_datatype_with_sec_ind.yaml @@ -0,0 +1,223 @@ +#TEST FOR POSTGRES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on SecIND of bigint datatype +#Impact of orderby clause on SecIND of varchar datatype +#Impact of orderby clause on SecIND of uuid datatype +#Impact of orderby clause on SecIND of date datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedVarchar1001M_1(col_bigint_id_1 bigint, col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedUuid1M_1(col_bigint_id_1 bigint, col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedDate1M_1(col_bigint_id_1 bigint, col_date_id_1 date, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2); + - CREATE INDEX ON indexedVarchar1001M_1(col_varchar100_pid_1); + - CREATE INDEX ON indexedUuid1M_1(col_uuid_id_1); + - CREATE INDEX ON indexedDate1M_1(col_date_id_1); + cleanup: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + loadRules: + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedDate1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_date_id_ + count: 1 + util: RandomDateBtwYears + params: [1900, 2022] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: ORDG4_ordby_bigint_indexed_column + run: + - name: pg_ordby_bigint_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + - workload: ORDG4_ordby_varchar_indexed_column + run: + - name: pg_ordby_varchar_indexed_column + weight: 100 + queries: + - query: select col_varchar100_pid_1 from indexedVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG4_ordby_uuid_indexed_column + run: + - name: pg_ordby_uuid_indexed_column + weight: 100 + queries: + - query: select col_uuid_id_1 from indexedUuid1M_1 order by col_uuid_id_1 + - workload: ORDG4_ordby_date_indexed_column + run: + - name: pg_ordby_date_indexed_column + weight: 100 + queries: + - query: select col_date_id_1 from indexedDate1M_1 order by col_date_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml new file mode 100644 index 000000000..01ee7896c --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml @@ -0,0 +1,226 @@ +#TEST FOR POSTGRES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on SecIND of bigint datatype +#Impact of orderby clause on SecIND of varchar datatype +#Impact of orderby clause on SecIND of uuid datatype +#Impact of orderby clause on SecIND of date datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedVarchar1001M_1(col_bigint_id_1 bigint, col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedUuid1M_1(col_bigint_id_1 bigint, col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedDate1M_1(col_bigint_id_1 bigint, col_date_id_1 date, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2 DESC); + - CREATE INDEX ON indexedVarchar1001M_1(col_varchar100_pid_1 DESC); + - CREATE INDEX ON indexedUuid1M_1(col_uuid_id_1 DESC); + - CREATE INDEX ON indexedDate1M_1(col_date_id_1 DESC); + + cleanup: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + + loadRules: + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedDate1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_date_id_ + count: 1 + util: RandomDateBtwYears + params: [ 1900, 2022 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + executeRules: + - workload: ORDG5_ordby_bigint_indexed_column_desc + customTags: customer=2 + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + - workload: ORDG5_ordby_varchar_indexed_column_desc + run: + - name: ordby_varchar_indexed_column_desc + weight: 100 + queries: + - query: select col_varchar100_pid_1 from indexedVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG5_ordby_uuid_indexed_column_desc + run: + - name: ordby_uuid_indexed_column_desc + weight: 100 + queries: + - query: select col_uuid_id_1 from indexedUuid1M_1 order by col_uuid_id_1 + - workload: ORDG5_ordby_date_indexed_column_desc + run: + - name: ordby_date_indexed_column_desc + weight: 100 + queries: + - query: select col_date_id_1 from indexedDate1M_1 order by col_date_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG6_impact_of_increasing_rows.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG6_impact_of_increasing_rows.yaml new file mode 100644 index 000000000..48ce8c519 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG6_impact_of_increasing_rows.yaml @@ -0,0 +1,120 @@ +#Impact of increasing rows on orderby clause +#Orderby on 0.1M rows +#Orderby on 10M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG6_increasing_rows_1L + run: + - name: increasing_rows_1L + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint1L_1 order by col_bigint_id_1 + - workload: ORDG6_increasing_rows_10M + run: + - name: increasing_rows_10M + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint10M_1 order by col_bigint_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG7_orderby_on_hash_partitioned_table.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG7_orderby_on_hash_partitioned_table.yaml new file mode 100644 index 000000000..79b03a9ec --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG7_orderby_on_hash_partitioned_table.yaml @@ -0,0 +1,170 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL7 Orderby on hash partitioned table +#Orderby clause on non indexed column of bigint datatype +#Orderby clause on hash pkey of bigint datatype +#Orderby clause on hash secondary indexed column of bigint datatype +#Orderby clause on range secondary indexed column of bigint datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 + +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_3); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000 ] + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG7_ordby_bigint_non_indexed_column + customTags: customer=2,schematype=regular,partition=hash,cardinality=single,projection=nonindexed,queryshape=orderby,orderbyon=nonindexed + run: + - name: ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_4 from Indexed1M_1 order by col_bigint_id_4 + - workload: ORDG7_ordby_bigint_hash_pkey_column + customTags: customer=2,schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=hashpkey,queryshape=orderby,orderbyon=hashpkey + run: + - name: ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 order by col_bigint_id_1 + - workload: ORDG7_ordby_bigint_hash_pkey_with_filter_column + customTags: customer=1,schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 + - workload: ORDG7_ordby_bigint_hash_secondary_indexed_column + customTags: schematype=regular,partition=hash,skey=hash,cardinality=single,projection=hashskey,queryshape=orderby,orderbyon=hashskey + run: + - name: ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from Indexed1M_1 order by col_bigint_id_2 + - workload: ORDG7_ordby_bigint_hash_secondary_indexed_with_filter_column + customTags: customer=1,schematype=regular,partition=hash,skey=hash,cardinality=single,projection=hashskey,filtercount=one,filteron=hashskey,filtertype=comparision,queryshape=orderby,orderbyon=hashskey + run: + - name: yb_ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from Indexed1M_1 where col_bigint_id_2>1 order by col_bigint_id_2 + - workload: ORDG7_ordby_bigint_range_secondary_indexed_column + customTags: schematype=regular,partition=hash,skey=asc,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_3 from Indexed1M_1 order by col_bigint_id_3 + - workload: ORDG7_ordby_bigint_range_secondary_indexed_with_filter_column + customTags: customer=1,schematype=regular,partition=hash,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_3 from Indexed1M_1 where col_bigint_id_3>1 order by col_bigint_id_3 + + - workload: ORDG7_ordby_bigint_hash_pkey_with_filter_column_desc + customTags: customer=1,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bigint_hash_pkey_with_filter_column_desc + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC + + - workload: ORDG7_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG7_ordby_fwd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_fwd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 + + - workload: ORDG7_ordby_bckwrd_ind_scan_pkey_filter_full_tbl + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter_full_tbl + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card3_1>1 order by col_bigint_card3_1 DESC + + - workload: ORDG7_ordby_fwd_ind_scan_pkey_filter_full_tbl + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_fwd_ind_scan_pkey_filter_full_tbl + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card3_1>1 order by col_bigint_card3_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG8_orderby_backwardscan_post_updates.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG8_orderby_backwardscan_post_updates.yaml new file mode 100644 index 000000000..eb563c5e2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/postgres/ORDG8_orderby_backwardscan_post_updates.yaml @@ -0,0 +1,246 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 + +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL7 Orderby on hash partitioned table +#Orderby clause on non indexed column of bigint datatype +#Orderby clause on hash pkey of bigint datatype +#Orderby clause on hash secondary indexed column of bigint datatype +#Orderby clause on range secondary indexed column of bigint datatype +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.2 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_3); + - DROP TABLE IF EXISTS indexedBigint1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2 DESC); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_3); + - DROP TABLE IF EXISTS Indexed1M_range_1; + - CREATE TABLE Indexed1M_range_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_range_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS Indexed1M_range_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + + - table: Indexed1M_range_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: ORDG8_1_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1,col_bigint_id_2,col_bigint_card2_1,col_bigint_card3_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG8_3_ordby_bigint_pkey_column_desc + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_range_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC + + - workload: ORDG8_1_perform_update_ordby_bckwrd_ind_scan_pkey_filter + skipReport: true + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: update Indexed1M_1 set col_bigint_card3_1=? where col_bigint_card3_1=? + bindings: + - util: RandomNumber + params: [ 1000001, 1010001 ] + - util: RandomNumber + params: [ 1000001, 1010001 ] + + - workload: ORDG8_2_perform_update_ordby_bigint_indexed_column_desc + skipReport: true + customTags: customer=2,schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: update indexedBigint1M_1 set col_bigint_id_3=? where col_bigint_id_3=? + bindings: + - util: RandomNumber + params: [ 1, 1000000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + - workload: ORDG8_3_perform_update_ordby_bigint_pkey_column_desc + skipReport: true + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: update Indexed1M_range_1 set col_bigint_id_2 = ? where col_bigint_id_2 = ? + bindings: + - util: RandomNumber + params: [ 1, 1000000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + - workload: ORDG8_1_post_update_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1,col_bigint_id_2,col_bigint_card2_1,col_bigint_card3_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG8_2_post_update_ordby_bigint_indexed_column_desc + customTags: customer=2,schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + + - workload: ORDG8_3_post_update_ordby_bigint_pkey_column_desc + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_range_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG2_index_filter_condition_type_impact.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG2_index_filter_condition_type_impact.yaml new file mode 100644 index 000000000..e5b74618f --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG2_index_filter_condition_type_impact.yaml @@ -0,0 +1,104 @@ +#TEST FOR YUGABYTE Colocated TABLES +#GOAL2 Impact of index type on Orderby +#TESTS: +#Orderby clause with 1 filter condition on non indexed column of bigint datatype +#Orderby clause with 1 filter condition on pkey of bigint datatype +#Orderby clause on with 1 filter condition secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG2_ordby_bigint_non_indexed_column + customTags: schematype=regular,partition=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=orderby,orderbyon=nonindexed + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_3 from Indexed1M_1 where col_bigint_id_3>1 order by col_bigint_id_3 + - workload: ORDG2_ordby_bigint_pkey_column + customTags: schematype=regular,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 + - workload: ORDG2_ordby_bigint_secondary_indexed_column + customTags: schematype=regular,partition=hash,cardinality=single,projection=rangeskey,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from Indexed1M_1 where col_bigint_id_2>1 order by col_bigint_id_2 + - workload: ORDG2_ordby_bigint_pkey_column_projectall + customTags: schematype=regular,partition=hash,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select * from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG3_impact_of_datatype.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG3_impact_of_datatype.yaml new file mode 100644 index 000000000..b54f41894 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG3_impact_of_datatype.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE Colocated TABLES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on PKEY of bigint datatype +#Impact of orderby clause on PKEY of varchar datatype +#Impact of orderby clause on PKEY of uuid datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyUuid1M_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyVarchar1001M_1(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1)); + - CREATE TABLE pkeyUuid1M_1(col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_uuid_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyUuid1M_1; + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG3_ordby_bigint_pkey_column + customTags: schematype=colocated,partition=range,pkey=asc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: ybc_ordby_bigint_pkey_column + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint1M_1 order by col_bigint_id_1 + - workload: ORDG3_ordby_varchar_pkey_column + customTags: schematype=colocated,partition=range,pkey=asc,columndatatype=varchar,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: ybc_ordby_varchar_pkey_column + weight: 100 + queries: + - query: select col_varchar100_pid_1 from pkeyVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG3_ordby_uuid_pkey_column + customTags: schematype=colocated,partition=range,pkey=asc,columndatatype=uuid,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: ybc_ordby_uuid_pkey_column + weight: 100 + queries: + - query: select col_uuid_id_1 from pkeyUuid1M_1 order by col_uuid_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG4_impact_of_datatype_with_sec_ind.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG4_impact_of_datatype_with_sec_ind.yaml new file mode 100644 index 000000000..093dc9184 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG4_impact_of_datatype_with_sec_ind.yaml @@ -0,0 +1,229 @@ +#TEST FOR YUGABYTE Colocated TABLES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on SecIND of bigint datatype +#Impact of orderby clause on SecIND of varchar datatype +#Impact of orderby clause on SecIND of uuid datatype +#Impact of orderby clause on SecIND of date datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedVarchar1001M_1(col_bigint_id_1 bigint, col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedUuid1M_1(col_bigint_id_1 bigint, col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedDate1M_1(col_bigint_id_1 bigint, col_date_id_1 date, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2); + - CREATE INDEX ON indexedVarchar1001M_1(col_varchar100_pid_1); + - CREATE INDEX ON indexedUuid1M_1(col_uuid_id_1); + - CREATE INDEX ON indexedDate1M_1(col_date_id_1); + cleanup: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + loadRules: + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedDate1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_date_id_ + count: 1 + util: RandomDateBtwYears + params: [1900, 2022] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + executeRules: + - workload: ORDG4_ordby_bigint_indexed_column + customTags: schematype=colocated,partition=range,skey=asc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ybc_ordby_bigint_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + - workload: ORDG4_ordby_varchar_indexed_column + customTags: schematype=colocated,partition=range,skey=asc,columndatatype=varchar,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ybc_ordby_varchar_indexed_column + weight: 100 + queries: + - query: select col_varchar100_pid_1 from indexedVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG4_ordby_uuid_indexed_column + customTags: schematype=colocated,partition=range,skey=asc,columndatatype=uuid,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ybc_ordby_uuid_indexed_column + weight: 100 + queries: + - query: select col_uuid_id_1 from indexedUuid1M_1 order by col_uuid_id_1 + - workload: ORDG4_ordby_date_indexed_column + customTags: schematype=colocated,partition=range,skey=asc,columndatatype=date,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ybc_ordby_date_indexed_column + weight: 100 + queries: + - query: select col_date_id_1 from indexedDate1M_1 order by col_date_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml new file mode 100644 index 000000000..cdb9f9822 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml @@ -0,0 +1,231 @@ +#TEST FOR YUGABYTE Colocated TABLES +#GOAL5 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on SecIND(DESC) of bigint datatype +#Impact of orderby clause on SecIND(DESC) of varchar datatype +#Impact of orderby clause on SecIND(DESC) of uuid datatype +#Impact of orderby clause on SecIND(DESC) of date datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedVarchar1001M_1(col_bigint_id_1 bigint, col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedUuid1M_1(col_bigint_id_1 bigint, col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE indexedDate1M_1(col_bigint_id_1 bigint, col_date_id_1 date, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2 DESC); + - CREATE INDEX ON indexedVarchar1001M_1(col_varchar100_pid_1 DESC); + - CREATE INDEX ON indexedUuid1M_1(col_uuid_id_1 DESC); + - CREATE INDEX ON indexedDate1M_1(col_date_id_1 DESC); + + cleanup: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + + loadRules: + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedDate1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_date_id_ + count: 1 + util: RandomDateBtwYears + params: [ 1900, 2022 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + executeRules: + - workload: ORDG5_ordby_bigint_indexed_column_desc + customTags: customer=2,schematype=colocated,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + - workload: ORDG5_ordby_varchar_indexed_column_desc + customTags: schematype=colocated,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_varchar_indexed_column_desc + weight: 100 + queries: + - query: select col_varchar100_pid_1 from indexedVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG5_ordby_uuid_indexed_column_desc + customTags: schematype=colocated,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_uuid_indexed_column_desc + weight: 100 + queries: + - query: select col_uuid_id_1 from indexedUuid1M_1 order by col_uuid_id_1 + - workload: ORDG5_ordby_date_indexed_column_desc + customTags: schematype=colocated,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_date_indexed_column_desc + weight: 100 + queries: + - query: select col_date_id_1 from indexedDate1M_1 order by col_date_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG6_impact_of_increasing_rows.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG6_impact_of_increasing_rows.yaml new file mode 100644 index 000000000..10a86d722 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG6_impact_of_increasing_rows.yaml @@ -0,0 +1,124 @@ +#Impact of increasing rows on orderby clause +#Orderby on 0.1M rows +#Orderby on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG6_increasing_rows_1L + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: increasing_rows_1L + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint1L_1 order by col_bigint_id_1 + - workload: ORDG6_increasing_rows_10M + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: increasing_rows_10M + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint10M_1 order by col_bigint_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG8_orderby_backwardscan_post_updates.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG8_orderby_backwardscan_post_updates.yaml new file mode 100644 index 000000000..bab12c191 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yb_colocated/ORDG8_orderby_backwardscan_post_updates.yaml @@ -0,0 +1,248 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 + +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL7 Orderby on hash partitioned table +#Orderby clause on non indexed column of bigint datatype +#Orderby clause on hash pkey of bigint datatype +#Orderby clause on hash secondary indexed column of bigint datatype +#Orderby clause on range secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.2 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_3 ASC); + - DROP TABLE IF EXISTS indexedBigint1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2 DESC); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_3); + - DROP TABLE IF EXISTS Indexed1M_range_1; + - CREATE TABLE Indexed1M_range_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Indexed1M_range_1(col_bigint_id_2 ASC); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS Indexed1M_range_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + + - table: Indexed1M_range_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: ORDG8_1_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1,col_bigint_id_2,col_bigint_card2_1,col_bigint_card3_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG8_3_ordby_bigint_pkey_column_desc + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_range_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC + + - workload: ORDG8_1_perform_update_ordby_bckwrd_ind_scan_pkey_filter + skipReport: true + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: update Indexed1M_1 set col_bigint_card3_1=? where col_bigint_card3_1=? + bindings: + - util: RandomNumber + params: [ 1000001, 1010001 ] + - util: RandomNumber + params: [ 1000001, 1010001 ] + + - workload: ORDG8_2_perform_update_ordby_bigint_indexed_column_desc + skipReport: true + customTags: customer=2,schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: update indexedBigint1M_1 set col_bigint_id_3=? where col_bigint_id_3=? + bindings: + - util: RandomNumber + params: [ 1, 1000000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + - workload: ORDG8_3_perform_update_ordby_bigint_pkey_column_desc + skipReport: true + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: update Indexed1M_range_1 set col_bigint_id_2 = ? where col_bigint_id_2 = ? + bindings: + - util: RandomNumber + params: [ 1, 1000000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + - workload: ORDG8_1_post_update_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1,col_bigint_id_2,col_bigint_card2_1,col_bigint_card3_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG8_2_post_update_ordby_bigint_indexed_column_desc + customTags: customer=2,schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + + - workload: ORDG8_3_post_update_ordby_bigint_pkey_column_desc + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_range_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG2_index_filter_condition_type_impact.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG2_index_filter_condition_type_impact.yaml new file mode 100644 index 000000000..7f83e63bd --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG2_index_filter_condition_type_impact.yaml @@ -0,0 +1,103 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL12 Impact of index type on Orderby +#TESTS: +#Orderby clause with 1 filter condition on non indexed column of bigint datatype +#Orderby clause with 1 filter condition on pkey of bigint datatype +#Orderby clause on with 1 filter condition secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2 ASC); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG2_ordby_bigint_non_indexed_column + customTags: schematype=colocated,partition=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=orderby,orderbyon=nonindexed + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_3 from Indexed1M_1 where col_bigint_id_3>1 order by col_bigint_id_3 + - workload: ORDG2_ordby_bigint_pkey_column + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 + - workload: ORDG2_ordby_bigint_secondary_indexed_column + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangeskey,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from Indexed1M_1 where col_bigint_id_2>1 order by col_bigint_id_2 + - workload: ORDG2_ordby_bigint_pkey_column_projectall + customTags: schematype=colocated,partition=hash,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select * from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG3_impact_of_datatype.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG3_impact_of_datatype.yaml new file mode 100644 index 000000000..e287a3aa6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG3_impact_of_datatype.yaml @@ -0,0 +1,167 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on PKEY of bigint datatype +#Impact of orderby clause on PKEY of varchar datatype +#Impact of orderby clause on PKEY of uuid datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyUuid1M_1; + - CREATE TABLE pkeyBigint1M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyVarchar1001M_1(col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_varchar100_pid_1 ASC)); + - CREATE TABLE pkeyUuid1M_1(col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_uuid_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1; + - DROP TABLE IF EXISTS pkeyVarchar1001M_1; + - DROP TABLE IF EXISTS pkeyUuid1M_1; + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG3_ordby_bigint_pkey_column + customTags: schematype=regular,partition=range,pkey=asc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: yb_ordby_bigint_pkey_column + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint1M_1 order by col_bigint_id_1 + - workload: ORDG3_ordby_varchar_pkey_column + customTags: schematype=regular,partition=range,pkey=asc,columndatatype=varchar,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: yb_ordby_varchar_pkey_column + weight: 100 + queries: + - query: select col_varchar100_pid_1 from pkeyVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG3_ordby_uuid_pkey_column + customTags: schematype=regular,partition=range,pkey=asc,columndatatype=uuid,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: yb_ordby_uuid_pkey_column + weight: 100 + queries: + - query: select col_uuid_id_1 from pkeyUuid1M_1 order by col_uuid_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG4_impact_of_datatype_with_sec_ind.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG4_impact_of_datatype_with_sec_ind.yaml new file mode 100644 index 000000000..1c769f50e --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG4_impact_of_datatype_with_sec_ind.yaml @@ -0,0 +1,231 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on SecIND of bigint datatype +#Impact of orderby clause on SecIND of varchar datatype +#Impact of orderby clause on SecIND of uuid datatype +#Impact of orderby clause on SecIND of date datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE indexedVarchar1001M_1(col_bigint_id_1 bigint, col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE indexedUuid1M_1(col_bigint_id_1 bigint, col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE indexedDate1M_1(col_bigint_id_1 bigint, col_date_id_1 date, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2 ASC); + - CREATE INDEX ON indexedVarchar1001M_1(col_varchar100_pid_1 ASC); + - CREATE INDEX ON indexedUuid1M_1(col_uuid_id_1 ASC); + - CREATE INDEX ON indexedDate1M_1(col_date_id_1 ASC); + + cleanup: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + loadRules: + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: indexedDate1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_date_id_ + count: 1 + util: RandomDateBtwYears + params: [1900, 2022] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG4_ordby_bigint_indexed_column + customTags: schematype=regular,partition=range,skey=asc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_bigint_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + - workload: ORDG4_ordby_varchar_indexed_column + customTags: schematype=regular,partition=range,skey=asc,columndatatype=varchar,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_varchar_indexed_column + weight: 100 + queries: + - query: select col_varchar100_pid_1 from indexedVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG4_ordby_uuid_indexed_column + customTags: schematype=regular,partition=range,skey=asc,columndatatype=uuid,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_uuid_indexed_column + weight: 100 + queries: + - query: select col_uuid_id_1 from indexedUuid1M_1 order by col_uuid_id_1 + - workload: ORDG4_ordby_date_indexed_column + customTags: schematype=regular,partition=range,skey=asc,columndatatype=date,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_date_indexed_column + weight: 100 + queries: + - query: select col_date_id_1 from indexedDate1M_1 order by col_date_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml new file mode 100644 index 000000000..c348a53ab --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG5_impact_of_datatype_with_sec_ind_desc.yaml @@ -0,0 +1,230 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL3 Impact of datatype on Orderby clause +#TESTS: +#Impact of orderby clause on SecIND(DESC) of bigint datatype +#Impact of orderby clause on SecIND(DESC) of varchar datatype +#Impact of orderby clause on SecIND(DESC) of uuid datatype +#Impact of orderby clause on SecIND(DESC) of date datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE indexedVarchar1001M_1(col_bigint_id_1 bigint, col_varchar100_pid_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE indexedUuid1M_1(col_bigint_id_1 bigint, col_uuid_id_1 uuid, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE indexedDate1M_1(col_bigint_id_1 bigint, col_date_id_1 date, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2 DESC); + - CREATE INDEX ON indexedVarchar1001M_1(col_varchar100_pid_1 DESC); + - CREATE INDEX ON indexedUuid1M_1(col_uuid_id_1 DESC); + - CREATE INDEX ON indexedDate1M_1(col_date_id_1 DESC); + + cleanup: + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS indexedVarchar1001M_1; + - DROP TABLE IF EXISTS indexedUuid1M_1; + - DROP TABLE IF EXISTS indexedDate1M_1; + + loadRules: + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedVarchar1001M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar100_pid_ + count: 1 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedUuid1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_uuid_id_ + count: 1 + util: RandomUUID + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + - table: indexedDate1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_date_id_ + count: 1 + util: RandomDateBtwYears + params: [ 1900, 2022 ] + - name: col_bigint_ + count: 4 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + executeRules: + - workload: ORDG5_ordby_bigint_indexed_column_desc + customTags: customer=2,schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + - workload: ORDG5_ordby_varchar_indexed_column_desc + customTags: schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_varchar_indexed_column_desc + weight: 100 + queries: + - query: select col_varchar100_pid_1 from indexedVarchar1001M_1 order by col_varchar100_pid_1 + - workload: ORDG5_ordby_uuid_indexed_column_desc + customTags: schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_uuid_indexed_column_desc + weight: 100 + queries: + - query: select col_uuid_id_1 from indexedUuid1M_1 order by col_uuid_id_1 + - workload: ORDG5_ordby_date_indexed_column_desc + customTags: schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_date_indexed_column_desc + weight: 100 + queries: + - query: select col_date_id_1 from indexedDate1M_1 order by col_date_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG6_impact_of_increasing_rows.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG6_impact_of_increasing_rows.yaml new file mode 100644 index 000000000..4588e9657 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG6_impact_of_increasing_rows.yaml @@ -0,0 +1,124 @@ +#Impact of increasing rows on orderby clause +#Orderby on 0.1M rows +#Orderby on 10M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + + create: + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + - CREATE TABLE pkeyBigint1L_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkeyBigint10M_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1L_1; + - DROP TABLE IF EXISTS pkeyBigint10M_1; + + loadRules: + - table: pkeyBigint1L_ + count: 1 + rows: 100000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 100000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 100000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - table: pkeyBigint10M_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [ 1, 10000000 ] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [ 1, 10000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 10000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + - workload: ORDG6_increasing_rows_1L + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: increasing_rows_1L + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint1L_1 order by col_bigint_id_1 + - workload: ORDG6_increasing_rows_10M + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangepkey + run: + - name: increasing_rows_10M + weight: 100 + queries: + - query: select col_bigint_id_1 from pkeyBigint10M_1 order by col_bigint_id_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG7_orderby_on_hash_partitioned_table.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG7_orderby_on_hash_partitioned_table.yaml new file mode 100644 index 000000000..9251c7fe0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG7_orderby_on_hash_partitioned_table.yaml @@ -0,0 +1,174 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 + +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL7 Orderby on hash partitioned table +#Orderby clause on non indexed column of bigint datatype +#Orderby clause on hash pkey of bigint datatype +#Orderby clause on hash secondary indexed column of bigint datatype +#Orderby clause on range secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v2.0 +use_dist_in_explain : true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_3 ASC); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: CyclicSeqIntGen + params: [ 1000001, 1010000 ] + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + + executeRules: + - workload: ORDG7_ordby_bigint_non_indexed_column + customTags: customer=2,schematype=regular,partition=hash,cardinality=single,projection=nonindexed,queryshape=orderby,orderbyon=nonindexed + run: + - name: ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_4 from Indexed1M_1 order by col_bigint_id_4 + - workload: ORDG7_ordby_bigint_hash_pkey_column + customTags: customer=2,schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=hashpkey,queryshape=orderby,orderbyon=hashpkey + run: + - name: ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 order by col_bigint_id_1 + - workload: ORDG7_ordby_bigint_hash_pkey_with_filter_column + customTags: customer=1,schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkey + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 + - workload: ORDG7_ordby_bigint_hash_secondary_indexed_column + customTags: schematype=regular,partition=hash,skey=hash,cardinality=single,projection=hashskey,queryshape=orderby,orderbyon=hashskey + run: + - name: ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from Indexed1M_1 order by col_bigint_id_2 + - workload: ORDG7_ordby_bigint_hash_secondary_indexed_with_filter_column + customTags: customer=1,schematype=regular,partition=hash,skey=hash,cardinality=single,projection=hashskey,filtercount=one,filteron=hashskey,filtertype=comparision,queryshape=orderby,orderbyon=hashskey + run: + - name: yb_ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_2 from Indexed1M_1 where col_bigint_id_2>1 order by col_bigint_id_2 + - workload: ORDG7_ordby_bigint_range_secondary_indexed_column + customTags: schematype=regular,partition=hash,skey=asc,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_3 from Indexed1M_1 order by col_bigint_id_3 + - workload: ORDG7_ordby_bigint_range_secondary_indexed_with_filter_column + customTags: customer=1,schematype=regular,partition=hash,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=orderby,orderbyon=rangeskey + run: + - name: yb_ordby_bigint_secondary_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_3 from Indexed1M_1 where col_bigint_id_3>1 order by col_bigint_id_3 + + - workload: ORDG7_ordby_bigint_hash_pkey_with_filter_column_desc + customTags: customer=1,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bigint_hash_pkey_with_filter_column_desc + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC + + - workload: ORDG7_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG7_ordby_fwd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_fwd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 + + - workload: ORDG7_ordby_bckwrd_ind_scan_pkey_filter_full_tbl + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter_full_tbl + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card3_1>1 order by col_bigint_card3_1 DESC + + - workload: ORDG7_ordby_fwd_ind_scan_pkey_filter_full_tbl + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_fwd_ind_scan_pkey_filter_full_tbl + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card3_1>1 order by col_bigint_card3_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG8_orderby_backwardscan_post_updates.yaml b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG8_orderby_backwardscan_post_updates.yaml new file mode 100644 index 000000000..c7dc7bb3a --- /dev/null +++ b/config/yugabyte/regression_pipelines/orderby_workloads/yugabyte/ORDG8_orderby_backwardscan_post_updates.yaml @@ -0,0 +1,247 @@ +#100000 col1 col2 col3 col4 +#Table1 1*1M 1000*1k 10000*100 + +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL7 Orderby on hash partitioned table +#Orderby clause on non indexed column of bigint datatype +#Orderby clause on hash pkey of bigint datatype +#Orderby clause on hash secondary indexed column of bigint datatype +#Orderby clause on range secondary indexed column of bigint datatype +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.2 +use_dist_in_explain : true +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + + create: + - DROP TABLE IF EXISTS Indexed1M_1; + - CREATE TABLE Indexed1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_card1_1, col_bigint_card2_1, col_bigint_card3_1, col_bigint_id_1)); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_2); + - CREATE INDEX ON Indexed1M_1(col_bigint_id_3 ASC); + - DROP TABLE IF EXISTS indexedBigint1M_1; + - CREATE TABLE indexedBigint1M_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint,col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_2 DESC); + - CREATE INDEX ON indexedBigint1M_1(col_bigint_id_3); + - DROP TABLE IF EXISTS Indexed1M_range_1; + - CREATE TABLE Indexed1M_range_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON Indexed1M_range_1(col_bigint_id_2 ASC); + + cleanup: + - DROP TABLE IF EXISTS Indexed1M_1; + - DROP TABLE IF EXISTS indexedBigint1M_1; + - DROP TABLE IF EXISTS Indexed1M_range_1; + + loadRules: + - table: Indexed1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001, 1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001, 1010001 ] + - name: col_bigint_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: indexedBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [ 1, 100 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 500 ] + + - table: Indexed1M_range_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_bigint_ + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + executeRules: + + - workload: ORDG8_1_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1,col_bigint_id_2,col_bigint_card2_1,col_bigint_card3_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG8_3_ordby_bigint_pkey_column_desc + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_range_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC + + - workload: ORDG8_1_perform_update_ordby_bckwrd_ind_scan_pkey_filter + skipReport: true + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: update Indexed1M_1 set col_bigint_card3_1=? where col_bigint_card3_1=? + bindings: + - util: RandomNumber + params: [ 1000001, 1010001 ] + - util: RandomNumber + params: [ 1000001, 1010001 ] + + - workload: ORDG8_2_perform_update_ordby_bigint_indexed_column_desc + skipReport: true + customTags: customer=2,schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: update indexedBigint1M_1 set col_bigint_id_3=? where col_bigint_id_3=? + bindings: + - util: RandomNumber + params: [ 1, 1000000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + - workload: ORDG8_3_perform_update_ordby_bigint_pkey_column_desc + skipReport: true + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: update Indexed1M_range_1 set col_bigint_id_2 = ? where col_bigint_id_2 = ? + bindings: + - util: RandomNumber + params: [ 1, 1000000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + - workload: ORDG8_1_post_update_ordby_bckwrd_ind_scan_pkey_filter + customTags: customer=0,schematype=regular,partition=hash,pkey=composite,cardinality=multiple,projection=hashpkey,filtercount=one,filteron=hashpkey,filtertype=comparision,queryshape=orderby,orderbyon=hashpkeydesc + run: + - name: ordby_bckwrd_ind_scan_pkey_filter + weight: 100 + queries: + - query: select col_bigint_id_1,col_bigint_id_2,col_bigint_card2_1,col_bigint_card3_1 from Indexed1M_1 where col_bigint_card1_1=1000000 and col_bigint_card2_1<1000100 order by col_bigint_card2_1 DESC + + - workload: ORDG8_2_post_update_ordby_bigint_indexed_column_desc + customTags: customer=2,schematype=regular,partition=range,skey=desc,columndatatype=bigint,cardinality=single,projection=indexed,queryshape=orderby,orderbyon=rangeskey + run: + - name: ordby_bigint_indexed_column_desc + weight: 100 + queries: + - query: select col_bigint_id_2 from indexedBigint1M_1 order by col_bigint_id_2 + + - workload: ORDG8_3_post_update_ordby_bigint_pkey_column_desc + customTags: schematype=colocated,partition=hash,cardinality=single,projection=rangepkey,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=orderby,orderbyon=rangepkeydesc + run: + - name: yb_ordby_bigint_non_indexed_column + weight: 100 + queries: + - query: select col_bigint_id_1 from Indexed1M_range_1 where col_bigint_id_1>1 order by col_bigint_id_1 DESC diff --git a/config/yugabyte/regression_pipelines/perfstudio/postgres/MG1_analyze_table.yaml b/config/yugabyte/regression_pipelines/perfstudio/postgres/MG1_analyze_table.yaml new file mode 100644 index 000000000..dbe85ac1a --- /dev/null +++ b/config/yugabyte/regression_pipelines/perfstudio/postgres/MG1_analyze_table.yaml @@ -0,0 +1,360 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +disable_explain: true +works: + work: + time_secs: 1800 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + - create table nets_10M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_50M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_100M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_200M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + + cleanup: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + + loadRules: + + - table: nets_10M_ + count: 1 + rows: 10000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_50M_ + count: 1 + rows: 50000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_100M_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_200M_ + count: 1 + rows: 200000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + + - workload: MG1_1_Analyze_50M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_50M_1 + + - workload: MG1_2_Analyze_100M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_100M_1 + + - workload: MG1_3_Analyze_200M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_200M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/perfstudio/yb_colocated/MG1_analyze_table.yaml b/config/yugabyte/regression_pipelines/perfstudio/yb_colocated/MG1_analyze_table.yaml new file mode 100644 index 000000000..e5cd291bb --- /dev/null +++ b/config/yugabyte/regression_pipelines/perfstudio/yb_colocated/MG1_analyze_table.yaml @@ -0,0 +1,361 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +disable_explain: true +works: + work: + time_secs: 1800 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + - create table nets_10M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_50M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_100M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + - create table nets_200M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1, shard_id_1, op_id_1 )); + + cleanup: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + + loadRules: + + - table: nets_10M_ + count: 1 + rows: 10000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_50M_ + count: 1 + rows: 50000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_100M_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_200M_ + count: 1 + rows: 200000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + + - workload: MG1_1_Analyze_50M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_50M_1 + + - workload: MG1_2_Analyze_100M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_100M_1 + + - workload: MG1_3_Analyze_200M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_200M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/perfstudio/yugabyte/MG1_analyze_table.yaml b/config/yugabyte/regression_pipelines/perfstudio/yugabyte/MG1_analyze_table.yaml new file mode 100644 index 000000000..ec34b0d75 --- /dev/null +++ b/config/yugabyte/regression_pipelines/perfstudio/yugabyte/MG1_analyze_table.yaml @@ -0,0 +1,360 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +disable_explain: true +works: + work: + time_secs: 1800 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + - create table nets_10M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + - create table nets_50M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + - create table nets_100M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + - create table nets_200M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key ((db_user_id_1, shard_id_1) HASH, op_id_1 ASC)); + + cleanup: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + + loadRules: + + - table: nets_10M_ + count: 1 + rows: 10000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_50M_ + count: 1 + rows: 50000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_100M_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_200M_ + count: 1 + rows: 200000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + + - workload: MG1_1_Analyze_50M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_50M_1 + + - workload: MG1_2_Analyze_100M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_100M_1 + + - workload: MG1_3_Analyze_200M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_200M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/perfstudio/yugabyte_range/MG1_analyze_table.yaml b/config/yugabyte/regression_pipelines/perfstudio/yugabyte_range/MG1_analyze_table.yaml new file mode 100644 index 000000000..d98d7208b --- /dev/null +++ b/config/yugabyte/regression_pipelines/perfstudio/yugabyte_range/MG1_analyze_table.yaml @@ -0,0 +1,360 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +disable_explain: true +works: + work: + time_secs: 1800 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + - create table nets_10M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1 ASC, shard_id_1 ASC, op_id_1 ASC)); + - create table nets_50M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1 ASC, shard_id_1 ASC, op_id_1 ASC)); + - create table nets_100M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1 ASC, shard_id_1 ASC, op_id_1 ASC)); + - create table nets_200M_1(op_id_1 text,work_type_1 text,work_id_1 text,sequence_id_1 text,source_1 text,owner_1 text,state_1 text,resource_id_1 text,tracing_data_1 text,created_1 timestamp with time zone,modified_1 timestamp with time zone,timeout_1 timestamp with time zone,retry_count_1 bigint,db_user_id_1 text,shard_id_1 smallint,ingest_time_1 timestamp with time zone,label_1 text,metadata_1 text,primary key (db_user_id_1 ASC, shard_id_1 ASC, op_id_1 ASC)); + + cleanup: + - drop table IF EXISTS nets_10M_1; + - drop table IF EXISTS nets_50M_1; + - drop table IF EXISTS nets_100M_1; + - drop table IF EXISTS nets_200M_1; + + loadRules: + + - table: nets_10M_ + count: 1 + rows: 10000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_50M_ + count: 1 + rows: 50000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_100M_ + count: 1 + rows: 100000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + - table: nets_200M_ + count: 1 + rows: 200000000 + columns: + - name: op_id_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: work_type_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: work_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: sequence_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: source_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: owner_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: state_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: resource_id_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: tracing_data_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: created_ + count: 1 + util: CurrentTime + - name: modified_ + count: 1 + util: CurrentTime + - name: timeout_ + count: 1 + util: CurrentTime + - name: retry_count_ + count: 1 + util: RandomInt + params: [ 1, 50 ] + - name: db_user_id_ + count: 1 + util: HashedRandomString + params: [ 1, 500, 10] + - name: shard_id_ + count: 1 + util: RandomNumber + params: [ 1, 50 ] + - name: ingest_time_ + count: 1 + util: CurrentTime + - name: label_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + - name: metadata_ + count: 1 + util: RandomAString + params: [ 50, 50 ] + + executeRules: + + - workload: MG1_1_Analyze_50M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_50M_1 + + - workload: MG1_2_Analyze_100M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_100M_1 + + - workload: MG1_3_Analyze_200M + zeroRowsValidation: false + time_secs: 1800 + run: + - name: analyze_1 + weight: 100 + queries: + - query: analyze nets_200M_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G1_insert_varying_composite_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G1_insert_varying_composite_index.yaml new file mode 100644 index 000000000..df1c6d46e --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G1_insert_varying_composite_index.yaml @@ -0,0 +1,133 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1, col_int_2); + - create index index_test_4_idx1 on index_test_4(col_int_1, col_int_2, col_int_3, col_int_4, col_int_5); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G1_0_column_composite_index_test + run: + - name: Insert_0_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_1_column_composite_index_test + run: + - name: Insert_1_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_2_column_composite_index_test + run: + - name: Insert_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_5_column_composite_index_test + run: + - name: Insert_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G2_insert_varying_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G2_insert_varying_index.yaml new file mode 100644 index 000000000..0dd1d81a5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G2_insert_varying_index.yaml @@ -0,0 +1,145 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1); + - create index index_test_3_idx2 on index_test_3(col_int_2); + - create index index_test_3_idx3 on index_test_3(col_int_3); + - create index index_test_3_idx4 on index_test_3(col_int_4); + - create index index_test_3_idx5 on index_test_3(col_int_5); + - create index index_test_4_idx1 on index_test_4(col_int_1); + - create index index_test_4_idx2 on index_test_4(col_int_2); + - create index index_test_4_idx3 on index_test_4(col_int_3); + - create index index_test_4_idx4 on index_test_4(col_int_4); + - create index index_test_4_idx5 on index_test_4(col_int_5); + - create index index_test_4_idx6 on index_test_4(col_int_6); + - create index index_test_4_idx7 on index_test_4(col_int_7); + - create index index_test_4_idx8 on index_test_4(col_int_8); + - create index index_test_4_idx9 on index_test_4(col_int_9); + - create index index_test_4_idx10 on index_test_4(col_int_10); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G2_no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G3_insert_varying_pk_columns.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G3_insert_varying_pk_columns.yaml new file mode 100644 index 000000000..dbcf89119 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G3_insert_varying_pk_columns.yaml @@ -0,0 +1,87 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + - create table table_test_1 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1)); + - create table table_test_2 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1, col_int_2)); + - create table table_test_3 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1, col_int_2, col_int_3)); + - create table table_test_4 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5)); + + cleanup: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + loadRules: + - table: table_test_ + count: 4 + rows: 1000000 + columns: + - name: col_int_ + count: 7 + util: PrimaryIntGen + params: + - 1 + - 1000000 + executeRules: + - workload: RW_G3_1_range_column_test + run: + - name: Insert_1_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_1 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?, ?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_2_range_column_test + run: + - name: Insert_2_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_2 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?, ?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_3_range_column_test + run: + - name: Insert_3_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_3 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?,?, ?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_5_range_column_test + run: + - name: Insert_5_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_4 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?,?,?,?, ?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G4_multi_statement_transaction.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G4_multi_statement_transaction.yaml new file mode 100644 index 000000000..2f42a5df2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G4_multi_statement_transaction.yaml @@ -0,0 +1,141 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + - CREATE TABLE IF NOT EXISTS users_1(user_id_1 bigint, user_id_2 bigint, user_name_1 varchar(10), addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(user_id_1, user_id_2)); + - CREATE INDEX users_1_index_user_name ON users_1(user_name_1, addr_1); + - CREATE INDEX users_1_index_addr ON users_1(addr_1, user_name_1); + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, account_id_2 bigint, user_id_1 bigint, user_id_2 bigint, addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(account_id_1, account_id_2)); + - CREATE INDEX user_accounts_addr1 ON accounts_1( user_id_1, user_id_2, addr_1); + - CREATE INDEX user_accounts_addr2 ON accounts_1( addr_1, user_id_1, user_id_2); + - CREATE TABLE IF NOT EXISTS audit_table_1(account_id_1 bigint, account_id_2 bigint, event_id_1 date, user_id_1 bigint, user_id_2 bigint, delta_1 float(2), PRIMARY KEY(account_id_1, account_id_2, event_id_1)); + - CREATE INDEX audit_table_1_index1 ON audit_table_1(user_id_1, user_id_2, event_id_1); + - CREATE INDEX audit_table_1_index2 ON audit_table_1(event_id_1, user_id_1, user_id_2); + cleanup: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + + loadRules: + - table: users_ + count: 1 + rows: 3000000 + columns: + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: user_name_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: accounts_ + count: 1 + rows: 3000000 + columns: + - name: account_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: audit_table_ + count: 1 + rows: 3000000 + columns: + - name: account_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: event_id_ + count: 1 + util: PrimaryDateGen + params: [2000000] + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: delta_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + + executeRules: + - workload: RW_G4_multi_statement_transaction_run1 + customTags: customer=10,schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO audit_table_1(account_id_1, account_id_2, event_id_1, user_id_1, user_id_2, delta_1) VALUES(?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 2 + params: [ 10000000, 10000000000 ] + - util: PrimaryDateGen + params: [ 100000000 ] + - util: PrimaryIntGen + count: 2 + params: [ 10000000, 10000000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - query: UPDATE accounts_1 SET addr_1 = ? WHERE account_id_1 = ? and account_id_2 = ? and user_id_1 = ? and user_id_2 = ? + bindings: + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] + - query: UPDATE users_1 SET user_name_1 = ?, addr_1 = ? WHERE user_id_1 = ? and user_id_2 = ? + bindings: + - util: PrimaryStringGen + params: [ 1, 10 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G5_update_varying_composite_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G5_update_varying_composite_index.yaml new file mode 100644 index 000000000..1020720b7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G5_update_varying_composite_index.yaml @@ -0,0 +1,114 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1, col_int_2); + - create index index_test_4_idx1 on index_test_4(col_int_1, col_int_2, col_int_3, col_int_4, col_int_5); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + + rows: 2000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G5_0_column_composite_index_test + run: + - name: Update_0_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_1 SET col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_1_column_composite_index_test + run: + - name: Update_1_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_2 SET col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_2_column_composite_index_test + run: + - name: Update_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_3 SET col_int_1 = ?, col_int_2 = ? where id = ? + bindings: + - util: RandomNumber + count: 2 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_5_column_composite_index_test + run: + - name: Update_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_4 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ? where id = ? + bindings: + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G6_update_varying_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G6_update_varying_index.yaml new file mode 100644 index 000000000..af2c3e62b --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G6_update_varying_index.yaml @@ -0,0 +1,131 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1); + - create index index_test_3_idx2 on index_test_3(col_int_2); + - create index index_test_3_idx3 on index_test_3(col_int_3); + - create index index_test_3_idx4 on index_test_3(col_int_4); + - create index index_test_3_idx5 on index_test_3(col_int_5); + - create index index_test_4_idx1 on index_test_4(col_int_1); + - create index index_test_4_idx2 on index_test_4(col_int_2); + - create index index_test_4_idx3 on index_test_4(col_int_3); + - create index index_test_4_idx4 on index_test_4(col_int_4); + - create index index_test_4_idx5 on index_test_4(col_int_5); + - create index index_test_4_idx6 on index_test_4(col_int_6); + - create index index_test_4_idx7 on index_test_4(col_int_7); + - create index index_test_4_idx8 on index_test_4(col_int_8); + - create index index_test_4_idx9 on index_test_4(col_int_9); + - create index index_test_4_idx10 on index_test_4(col_int_10); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 2000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G6_no_index + run: + - name: Update_without_index_test + weight: 100 + queries: + - query: UPDATE index_test_1 SET col_int_1 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_1_index_test + run: + - name: Update_with_1_index_test + weight: 100 + queries: + - query: UPDATE index_test_2 SET col_int_1 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_5_index_test + run: + - name: Update_with_5_index_test + weight: 100 + queries: + - query: UPDATE index_test_3 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_10_index_test + run: + - name: Update_with_10_index_test + weight: 100 + queries: + - query: UPDATE index_test_4 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ?, col_int_6 = ?, col_int_7 = ?, col_int_8 = ?, col_int_9 = ?, col_int_10 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + count: 10 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G7_update_varying_pk_columns.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G7_update_varying_pk_columns.yaml new file mode 100644 index 000000000..65831ba25 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/postgres/RW_G7_update_varying_pk_columns.yaml @@ -0,0 +1,104 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + - create table table_test_1 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1)); + - create table table_test_2 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1, col_int_2)); + - create table table_test_3 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1, col_int_2, col_int_3)); + - create table table_test_4 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5)); + + cleanup: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + loadRules: + - table: table_test_ + count: 4 + rows: 2000000 + columns: + - name: col_int_ + count: 6 + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 1 + util: RandomAString + params: [20, 20] + + executeRules: + - workload: RW_G7_1_range_column_test + run: + - name: Update_1_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_1 SET col_varchar_1 = ? WHERE col_int_1 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G7_2_range_column_test + run: + - name: Update_2_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_2 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 2 + params: [ 1, 2000000 ] + - workload: RW_G7_3_range_column_test + run: + - name: Update_3_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_3 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? and col_int_3 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 3 + params: [ 1, 2000000 ] + - workload: RW_G7_5_range_column_test + run: + - name: Update_5_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_4 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? and col_int_3 = ? and col_int_4 = ? and col_int_5 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G1_insert_varying_composite_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G1_insert_varying_composite_index.yaml new file mode 100644 index 000000000..af50e9803 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G1_insert_varying_composite_index.yaml @@ -0,0 +1,135 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc, col_int_2 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G1_0_column_composite_index_test + run: + - name: Insert_0_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_1_column_composite_index_test + run: + - name: Insert_1_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_2_column_composite_index_test + run: + - name: Insert_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_5_column_composite_index_test + run: + - name: Insert_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G2_insert_varying_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G2_insert_varying_index.yaml new file mode 100644 index 000000000..08dcc2136 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G2_insert_varying_index.yaml @@ -0,0 +1,147 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc); + - create index index_test_3_idx2 on index_test_3(col_int_2 asc); + - create index index_test_3_idx3 on index_test_3(col_int_3 asc); + - create index index_test_3_idx4 on index_test_3(col_int_4 asc); + - create index index_test_3_idx5 on index_test_3(col_int_5 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc); + - create index index_test_4_idx2 on index_test_4(col_int_2 asc); + - create index index_test_4_idx3 on index_test_4(col_int_3 asc); + - create index index_test_4_idx4 on index_test_4(col_int_4 asc); + - create index index_test_4_idx5 on index_test_4(col_int_5 asc); + - create index index_test_4_idx6 on index_test_4(col_int_6 asc); + - create index index_test_4_idx7 on index_test_4(col_int_7 asc); + - create index index_test_4_idx8 on index_test_4(col_int_8 asc); + - create index index_test_4_idx9 on index_test_4(col_int_9 asc); + - create index index_test_4_idx10 on index_test_4(col_int_10 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G2_no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G3_insert_varying_pk_columns.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G3_insert_varying_pk_columns.yaml new file mode 100644 index 000000000..127c074ee --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G3_insert_varying_pk_columns.yaml @@ -0,0 +1,89 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + - create table table_test_1 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc)); + - create table table_test_2 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc, col_int_2 asc)); + - create table table_test_3 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc)); + - create table table_test_4 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc)); + + cleanup: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + loadRules: + - table: table_test_ + count: 4 + rows: 1000000 + columns: + - name: col_int_ + count: 7 + util: PrimaryIntGen + params: + - 1 + - 1000000 + executeRules: + - workload: RW_G3_1_range_column_test + run: + - name: Insert_1_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_1 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?, ?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_2_range_column_test + run: + - name: Insert_2_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_2 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?, ?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_3_range_column_test + run: + - name: Insert_3_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_3 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?,?, ?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_5_range_column_test + run: + - name: Insert_5_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_4 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?,?,?,?, ?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G4_multi_statement_transaction.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G4_multi_statement_transaction.yaml new file mode 100644 index 000000000..f86f0f4fa --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G4_multi_statement_transaction.yaml @@ -0,0 +1,143 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + - CREATE TABLE IF NOT EXISTS users_1(user_id_1 bigint, user_id_2 bigint, user_name_1 varchar(10), addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(user_id_1 ASC, user_id_2 ASC)); + - CREATE INDEX users_1_index_user_name ON users_1(user_name_1 ASC, addr_1 ASC); + - CREATE INDEX users_1_index_addr ON users_1(addr_1 ASC, user_name_1 ASC); + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, account_id_2 bigint, user_id_1 bigint, user_id_2 bigint, addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(account_id_1 ASC, account_id_2 ASC)); + - CREATE INDEX user_accounts_addr1 ON accounts_1( user_id_1 ASC, user_id_2 ASC, addr_1 ASC); + - CREATE INDEX user_accounts_addr2 ON accounts_1( addr_1 ASC, user_id_1 ASC, user_id_2 ASC); + - CREATE TABLE IF NOT EXISTS audit_table_1(account_id_1 bigint, account_id_2 bigint, event_id_1 date, user_id_1 bigint, user_id_2 bigint, delta_1 float(2), PRIMARY KEY(account_id_1 ASC, account_id_2 ASC, event_id_1 ASC)); + - CREATE INDEX audit_table_1_index1 ON audit_table_1(user_id_1 ASC, user_id_2 ASC, event_id_1 ASC); + - CREATE INDEX audit_table_1_index2 ON audit_table_1(event_id_1 ASC, user_id_1 ASC, user_id_2 ASC); + cleanup: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + + loadRules: + - table: users_ + count: 1 + rows: 3000000 + columns: + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: user_name_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: accounts_ + count: 1 + rows: 3000000 + columns: + - name: account_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: audit_table_ + count: 1 + rows: 3000000 + columns: + - name: account_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: event_id_ + count: 1 + util: PrimaryDateGen + params: [2000000] + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: delta_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + + executeRules: + - workload: RW_G4_multi_statement_transaction_run1 + customTags: customer=10,schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO audit_table_1(account_id_1, account_id_2, event_id_1, user_id_1, user_id_2, delta_1) VALUES(?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 2 + params: [ 10000000, 10000000000 ] + - util: PrimaryDateGen + params: [ 100000000 ] + - util: PrimaryIntGen + count: 2 + params: [ 10000000, 10000000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - query: UPDATE accounts_1 SET addr_1 = ? WHERE account_id_1 = ? and account_id_2 = ? and user_id_1 = ? and user_id_2 = ? + bindings: + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] + - query: UPDATE users_1 SET user_name_1 = ?, addr_1 = ? WHERE user_id_1 = ? and user_id_2 = ? + bindings: + - util: PrimaryStringGen + params: [ 1, 10 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G5_update_varying_composite_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G5_update_varying_composite_index.yaml new file mode 100644 index 000000000..666188f81 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G5_update_varying_composite_index.yaml @@ -0,0 +1,116 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc, col_int_2 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + + rows: 2000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G5_0_column_composite_index_test + run: + - name: Update_0_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_1 SET col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_1_column_composite_index_test + run: + - name: Update_1_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_2 SET col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_2_column_composite_index_test + run: + - name: Update_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_3 SET col_int_1 = ?, col_int_2 = ? where id = ? + bindings: + - util: RandomNumber + count: 2 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_5_column_composite_index_test + run: + - name: Update_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_4 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ? where id = ? + bindings: + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G6_update_varying_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G6_update_varying_index.yaml new file mode 100644 index 000000000..5b76e696a --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G6_update_varying_index.yaml @@ -0,0 +1,133 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc); + - create index index_test_3_idx2 on index_test_3(col_int_2 asc); + - create index index_test_3_idx3 on index_test_3(col_int_3 asc); + - create index index_test_3_idx4 on index_test_3(col_int_4 asc); + - create index index_test_3_idx5 on index_test_3(col_int_5 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc); + - create index index_test_4_idx2 on index_test_4(col_int_2 asc); + - create index index_test_4_idx3 on index_test_4(col_int_3 asc); + - create index index_test_4_idx4 on index_test_4(col_int_4 asc); + - create index index_test_4_idx5 on index_test_4(col_int_5 asc); + - create index index_test_4_idx6 on index_test_4(col_int_6 asc); + - create index index_test_4_idx7 on index_test_4(col_int_7 asc); + - create index index_test_4_idx8 on index_test_4(col_int_8 asc); + - create index index_test_4_idx9 on index_test_4(col_int_9 asc); + - create index index_test_4_idx10 on index_test_4(col_int_10 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 2000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G6_no_index + run: + - name: Update_without_index_test + weight: 100 + queries: + - query: UPDATE index_test_1 SET col_int_1 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_1_index_test + run: + - name: Update_with_1_index_test + weight: 100 + queries: + - query: UPDATE index_test_2 SET col_int_1 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_5_index_test + run: + - name: Update_with_5_index_test + weight: 100 + queries: + - query: UPDATE index_test_3 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_10_index_test + run: + - name: Update_with_10_index_test + weight: 100 + queries: + - query: UPDATE index_test_4 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ?, col_int_6 = ?, col_int_7 = ?, col_int_8 = ?, col_int_9 = ?, col_int_10 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + count: 10 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G7_update_varying_pk_columns.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G7_update_varying_pk_columns.yaml new file mode 100644 index 000000000..6d6e5818d --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yb_colocated/RW_G7_update_varying_pk_columns.yaml @@ -0,0 +1,106 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + - create table table_test_1 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc)); + - create table table_test_2 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc, col_int_2 asc)); + - create table table_test_3 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc)); + - create table table_test_4 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc)); + + cleanup: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + loadRules: + - table: table_test_ + count: 4 + rows: 2000000 + columns: + - name: col_int_ + count: 6 + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 1 + util: RandomAString + params: [20, 20] + + executeRules: + - workload: RW_G7_1_range_column_test + run: + - name: Update_1_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_1 SET col_varchar_1 = ? WHERE col_int_1 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G7_2_range_column_test + run: + - name: Update_2_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_2 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 2 + params: [ 1, 2000000 ] + - workload: RW_G7_3_range_column_test + run: + - name: Update_3_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_3 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? and col_int_3 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 3 + params: [ 1, 2000000 ] + - workload: RW_G7_5_range_column_test + run: + - name: Update_5_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_4 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? and col_int_3 = ? and col_int_4 = ? and col_int_5 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G1_insert_varying_composite_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G1_insert_varying_composite_index.yaml new file mode 100644 index 000000000..308b97094 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G1_insert_varying_composite_index.yaml @@ -0,0 +1,134 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc, col_int_2 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G1_0_column_composite_index_test + run: + - name: Insert_0_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_1_column_composite_index_test + run: + - name: Insert_1_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_2_column_composite_index_test + run: + - name: Insert_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G1_5_column_composite_index_test + run: + - name: Insert_column_composite_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G2_insert_varying_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G2_insert_varying_index.yaml new file mode 100644 index 000000000..54b2fea46 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G2_insert_varying_index.yaml @@ -0,0 +1,146 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc); + - create index index_test_3_idx2 on index_test_3(col_int_2 asc); + - create index index_test_3_idx3 on index_test_3(col_int_3 asc); + - create index index_test_3_idx4 on index_test_3(col_int_4 asc); + - create index index_test_3_idx5 on index_test_3(col_int_5 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc); + - create index index_test_4_idx2 on index_test_4(col_int_2 asc); + - create index index_test_4_idx3 on index_test_4(col_int_3 asc); + - create index index_test_4_idx4 on index_test_4(col_int_4 asc); + - create index index_test_4_idx5 on index_test_4(col_int_5 asc); + - create index index_test_4_idx6 on index_test_4(col_int_6 asc); + - create index index_test_4_idx7 on index_test_4(col_int_7 asc); + - create index index_test_4_idx8 on index_test_4(col_int_8 asc); + - create index index_test_4_idx9 on index_test_4(col_int_9 asc); + - create index index_test_4_idx10 on index_test_4(col_int_10 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G2_no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: RW_G2_10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + params: [ 1000001, 100000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 100000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G3_insert_varying_pk_columns.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G3_insert_varying_pk_columns.yaml new file mode 100644 index 000000000..809aee945 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G3_insert_varying_pk_columns.yaml @@ -0,0 +1,88 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + - create table table_test_1 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc)); + - create table table_test_2 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc, col_int_2 asc)); + - create table table_test_3 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc)); + - create table table_test_4 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_int_7 bigint, primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc)); + + cleanup: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + loadRules: + - table: table_test_ + count: 4 + rows: 1000000 + columns: + - name: col_int_ + count: 7 + util: PrimaryIntGen + params: + - 1 + - 1000000 + executeRules: + - workload: RW_G3_1_range_column_test + run: + - name: Insert_1_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_1 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?, ?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_2_range_column_test + run: + - name: Insert_2_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_2 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?, ?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_3_range_column_test + run: + - name: Insert_3_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_3 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?,?, ?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] + - workload: RW_G3_5_range_column_test + run: + - name: Insert_5_range_column_test + weight: 100 + queries: + - query: INSERT INTO table_test_4 (col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7) values (?,?,?,?,?, ?,?) + bindings: + - util: PrimaryIntGen + count: 7 + params: [ 1000001, 100000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G4_multi_statement_transaction.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G4_multi_statement_transaction.yaml new file mode 100644 index 000000000..b7aefd725 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G4_multi_statement_transaction.yaml @@ -0,0 +1,142 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + - CREATE TABLE IF NOT EXISTS users_1(user_id_1 bigint, user_id_2 bigint, user_name_1 varchar(10), addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(user_id_1 ASC, user_id_2 ASC)); + - CREATE INDEX users_1_index_user_name ON users_1(user_name_1 ASC, addr_1 ASC); + - CREATE INDEX users_1_index_addr ON users_1(addr_1 ASC, user_name_1 ASC); + - CREATE TABLE IF NOT EXISTS accounts_1(account_id_1 bigint, account_id_2 bigint, user_id_1 bigint, user_id_2 bigint, addr_1 varchar(50), bal_1 float(2), PRIMARY KEY(account_id_1 ASC, account_id_2 ASC)); + - CREATE INDEX user_accounts_addr1 ON accounts_1( user_id_1 ASC, user_id_2 ASC, addr_1 ASC); + - CREATE INDEX user_accounts_addr2 ON accounts_1( addr_1 ASC, user_id_1 ASC, user_id_2 ASC); + - CREATE TABLE IF NOT EXISTS audit_table_1(account_id_1 bigint, account_id_2 bigint, event_id_1 date, user_id_1 bigint, user_id_2 bigint, delta_1 float(2), PRIMARY KEY(account_id_1 ASC, account_id_2 ASC, event_id_1 ASC)); + - CREATE INDEX audit_table_1_index1 ON audit_table_1(user_id_1 ASC, user_id_2 ASC, event_id_1 ASC); + - CREATE INDEX audit_table_1_index2 ON audit_table_1(event_id_1 ASC, user_id_1 ASC, user_id_2 ASC); + cleanup: + - DROP TABLE IF EXISTS users_1; + - DROP TABLE IF EXISTS accounts_1; + - DROP TABLE IF EXISTS audit_table_1; + + loadRules: + - table: users_ + count: 1 + rows: 3000000 + columns: + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: user_name_ + count: 1 + util: PrimaryStringGen + params: [ 1, 10 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: accounts_ + count: 1 + rows: 3000000 + columns: + - name: account_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: addr_ + count: 1 + util: PrimaryStringGen + params: [ 1, 50 ] + - name: bal_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + - table: audit_table_ + count: 1 + rows: 3000000 + columns: + - name: account_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: event_id_ + count: 1 + util: PrimaryDateGen + params: [2000000] + - name: user_id_ + count: 2 + util: PrimaryIntGen + params: [ 1, 3000000 ] + - name: delta_ + count: 1 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + + + executeRules: + - workload: RW_G4_multi_statement_transaction_run1 + customTags: customer=10,schematype=regular,partition=range,pkey=composite,cardinality=single,projection=all,filtercount=one + run: + - name: statement1_insert + weight: 100 + queries: + - query: INSERT INTO audit_table_1(account_id_1, account_id_2, event_id_1, user_id_1, user_id_2, delta_1) VALUES(?,?,?,?,?,?) + bindings: + - util: PrimaryIntGen + count: 2 + params: [ 10000000, 10000000000 ] + - util: PrimaryDateGen + params: [ 100000000 ] + - util: PrimaryIntGen + count: 2 + params: [ 10000000, 10000000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - query: UPDATE accounts_1 SET addr_1 = ? WHERE account_id_1 = ? and account_id_2 = ? and user_id_1 = ? and user_id_2 = ? + bindings: + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] + - query: UPDATE users_1 SET user_name_1 = ?, addr_1 = ? WHERE user_id_1 = ? and user_id_2 = ? + bindings: + - util: PrimaryStringGen + params: [ 1, 10 ] + - util: PrimaryStringGen + params: [ 1, 50 ] + - util: RandomInt + count: 2 + params: [ 1, 3000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G5_update_varying_composite_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G5_update_varying_composite_index.yaml new file mode 100644 index 000000000..03cc647f0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G5_update_varying_composite_index.yaml @@ -0,0 +1,115 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc, col_int_2 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + + rows: 2000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G5_0_column_composite_index_test + run: + - name: Update_0_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_1 SET col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_1_column_composite_index_test + run: + - name: Update_1_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_2 SET col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_2_column_composite_index_test + run: + - name: Update_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_3 SET col_int_1 = ?, col_int_2 = ? where id = ? + bindings: + - util: RandomNumber + count: 2 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G5_5_column_composite_index_test + run: + - name: Update_column_composite_index_test + weight: 100 + queries: + - query: UPDATE index_test_4 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ? where id = ? + bindings: + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G6_update_varying_index.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G6_update_varying_index.yaml new file mode 100644 index 000000000..5d84b1813 --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G6_update_varying_index.yaml @@ -0,0 +1,132 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1 asc); + - create index index_test_3_idx1 on index_test_3(col_int_1 asc); + - create index index_test_3_idx2 on index_test_3(col_int_2 asc); + - create index index_test_3_idx3 on index_test_3(col_int_3 asc); + - create index index_test_3_idx4 on index_test_3(col_int_4 asc); + - create index index_test_3_idx5 on index_test_3(col_int_5 asc); + - create index index_test_4_idx1 on index_test_4(col_int_1 asc); + - create index index_test_4_idx2 on index_test_4(col_int_2 asc); + - create index index_test_4_idx3 on index_test_4(col_int_3 asc); + - create index index_test_4_idx4 on index_test_4(col_int_4 asc); + - create index index_test_4_idx5 on index_test_4(col_int_5 asc); + - create index index_test_4_idx6 on index_test_4(col_int_6 asc); + - create index index_test_4_idx7 on index_test_4(col_int_7 asc); + - create index index_test_4_idx8 on index_test_4(col_int_8 asc); + - create index index_test_4_idx9 on index_test_4(col_int_9 asc); + - create index index_test_4_idx10 on index_test_4(col_int_10 asc); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 2000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: RW_G6_no_index + run: + - name: Update_without_index_test + weight: 100 + queries: + - query: UPDATE index_test_1 SET col_int_1 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_1_index_test + run: + - name: Update_with_1_index_test + weight: 100 + queries: + - query: UPDATE index_test_2 SET col_int_1 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_5_index_test + run: + - name: Update_with_5_index_test + weight: 100 + queries: + - query: UPDATE index_test_3 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G6_10_index_test + run: + - name: Update_with_10_index_test + weight: 100 + queries: + - query: UPDATE index_test_4 SET col_int_1 = ?, col_int_2 = ?, col_int_3 = ?, col_int_4 = ?, col_int_5 = ?, col_int_6 = ?, col_int_7 = ?, col_int_8 = ?, col_int_9 = ?, col_int_10 = ? where id = ? + count: 1 + bindings: + - util: RandomNumber + count: 10 + params: [ 1, 2000000 ] + - util: RandomNumber + params: [ 1, 2000000 ] + diff --git a/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G7_update_varying_pk_columns.yaml b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G7_update_varying_pk_columns.yaml new file mode 100644 index 000000000..d531c304a --- /dev/null +++ b/config/yugabyte/regression_pipelines/range_write_workloads/yugabyte/RW_G7_update_varying_pk_columns.yaml @@ -0,0 +1,105 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 24 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + - create table table_test_1 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc)); + - create table table_test_2 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc, col_int_2 asc)); + - create table table_test_3 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc)); + - create table table_test_4 (col_int_1 bigint, col_int_2 bigint, col_int_3 bigint, col_int_4 bigint, col_int_5 bigint, col_int_6 bigint, col_varchar_1 varchar(20), primary key (col_int_1 asc, col_int_2 asc, col_int_3 asc, col_int_4 asc, col_int_5 asc)); + + cleanup: + - drop table if exists table_test_1; + - drop table if exists table_test_2; + - drop table if exists table_test_3; + - drop table if exists table_test_4; + loadRules: + - table: table_test_ + count: 4 + rows: 2000000 + columns: + - name: col_int_ + count: 6 + util: PrimaryIntGen + params: + - 1 + - 2000000 + - name: col_varchar_ + count: 1 + util: RandomAString + params: [20, 20] + + executeRules: + - workload: RW_G7_1_range_column_test + run: + - name: Update_1_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_1 SET col_varchar_1 = ? WHERE col_int_1 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + params: [ 1, 2000000 ] + - workload: RW_G7_2_range_column_test + run: + - name: Update_2_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_2 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 2 + params: [ 1, 2000000 ] + - workload: RW_G7_3_range_column_test + run: + - name: Update_3_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_3 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? and col_int_3 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 3 + params: [ 1, 2000000 ] + - workload: RW_G7_5_range_column_test + run: + - name: Update_5_range_column_test + weight: 100 + queries: + - query: UPDATE table_test_4 SET col_varchar_1 = ? WHERE col_int_1 = ? and col_int_2 = ? and col_int_3 = ? and col_int_4 = ? and col_int_5 = ? + count: 1 + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + count: 5 + params: [ 1, 2000000 ] + diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml new file mode 100644 index 000000000..7cb7ba70b --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml @@ -0,0 +1,125 @@ +#TEST FOR POSTGRES REGULAR TABLES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key IN scan with additional projected column - Varying number of IN options +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 10 rows +# Range scan time to fetch 100 rows +# Range scan time to fetch 1000 rows +# Range scan time to fetch 10000 rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + - CREATE TABLE pkey_rangescan_for_INclause_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + loadRules: + - table: pkey_rangescan_for_INclause_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_1row + run: + - name: pkey_INclause_rangescan_increasing_rows_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_10row + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_100row + customTags: customer=1 + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 100 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_1000row + customTags: customer=1 + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_10000row + customTags: customer=1 + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG12_bitmapscan_orCondition.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG12_bitmapscan_orCondition.yaml new file mode 100644 index 000000000..d6ac9ae9e --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG12_bitmapscan_orCondition.yaml @@ -0,0 +1,128 @@ +#TEST FOR POSTGRES REGULAR TABLES +#GOAL12 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Bitmap scan with OR conditions on pkey and hash and range indexed columns +#TESTS: +# Bitmap scan time to fetch 10 rows +# Bitmap scan time to fetch 100 rows +# Bitmap scan time to fetch 1000 rows +# Bitmap scan time to fetch 10000 rows +# Bitmap scan time to fetch 10000 primary keys with only secondary index conditions +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_for_bitmapscan_tbl_1; + - CREATE TABLE pkey_for_bitmapscan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON pkey_for_bitmapscan_tbl_1 (col_bigint_2 ASC); + - CREATE INDEX ON pkey_for_bitmapscan_tbl_1 USING HASH (col_bigint_3); + cleanup: + - DROP TABLE IF EXISTS pkey_for_bitmapscan_tbl_1; + loadRules: + - table: pkey_for_bitmapscan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG12_bitmapscan_orCondition_10row + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 3 OR col_bigint_2 <= 3 OR col_bigint_3 IN (?,?,?) + bindings: + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_100row + customTags: customer=1 + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 33 OR col_bigint_2 <= 33 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 33 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_1000row + customTags: customer=1 + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 333 OR col_bigint_2 <= 333 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 333 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_10000row + customTags: customer=1 + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 3333 OR col_bigint_2 <= 3333 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 3333 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_onlyTargetPkey_10000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_2 <= 5000 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 5000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG13_wideSchema_fullTableScan.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG13_wideSchema_fullTableScan.yaml new file mode 100644 index 000000000..f7e1e1237 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG13_wideSchema_fullTableScan.yaml @@ -0,0 +1,75 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 30 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS wide_table_50kB; + - drop table IF EXISTS wide_table_200kB; + - CREATE TABLE wide_table_50kB (int_col1 INT PRIMARY KEY, int_col2 INT, text_col1 TEXT, text_col2 TEXT, text_col3 TEXT, text_col4 TEXT, text_col5 TEXT, text_col6 TEXT, text_col7 TEXT, text_col8 TEXT, text_col9 TEXT, text_col10 TEXT); + - CREATE TABLE wide_table_200kB (int_col1 INT PRIMARY KEY, int_col2 INT, text_col1 TEXT, text_col2 TEXT, text_col3 TEXT, text_col4 TEXT, text_col5 TEXT, text_col6 TEXT, text_col7 TEXT, text_col8 TEXT, text_col9 TEXT, text_col10 TEXT); + + afterLoad: + - CREATE INDEX idx_int_col2_50kB ON wide_table_50kB(int_col2); + - CREATE INDEX idx_int_col2_200kB ON wide_table_200kB(int_col2); + + loadRules: + - table: wide_table_50kB + rows: 10000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 10000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 10000] + - name: text_col + count: 10 + util: RandomAString + params: [5000, 5000] + + - table: wide_table_200kB + rows: 10000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 10000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 10000] + - name: text_col + count: 10 + util: RandomAString + params: [20000, 20000] + + executeRules: + - workload: select_50kB + time_secs: 30 + run: + - name: select_50kB + weight: 100 + queries: + - query: SELECT * FROM wide_table_50kB; + + - workload: select_200kB + time_secs: 30 + run: + - name: select_200kB + weight: 100 + queries: + - query: SELECT * FROM wide_table_200kB; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG2_pkey_rangeScan_increasingRows.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG2_pkey_rangeScan_increasingRows.yaml new file mode 100755 index 000000000..24f43b73d --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG2_pkey_rangeScan_increasingRows.yaml @@ -0,0 +1,95 @@ +#TEST FOR POSTGRES +#GOAL2 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_tbl_1; + - CREATE TABLE pkey_rangescan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_tbl_1; + loadRules: + - table: pkey_rangescan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG2_pkey_rangescan_varying_rows_1row + run: + - name: pkey_rangescan_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>999999 + - workload: scanG2_pkey_rangescan_varying_rows_100Krows + run: + - name: pkey_rangescan_100krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>900000 + - workload: scanG2_pkey_rangescan_varying_rows_500Krows + run: + - name: pkey_rangescan_500krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>500000 + - workload: scanG2_pkey_rangescan_varying_rows_1Mrows + run: + - name: pkey_rangescan_1Mrow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>1 diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG3_index_rangeScan_increasingRows.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG3_index_rangeScan_increasingRows.yaml new file mode 100644 index 000000000..cb6f9c9be --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG3_index_rangeScan_increasingRows.yaml @@ -0,0 +1,97 @@ +#TEST FOR POSTGRES +#GOAL3 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Indexed column range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indx_rangescan_tbl_1; + - CREATE TABLE indx_rangescan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE INDEX ON indx_rangescan_tbl_1(col_bigint_id_1); + cleanup: + - DROP TABLE IF EXISTS indx_rangescan_tbl_1; + loadRules: + - table: indx_rangescan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanG3_indx_rangescan_varying_rows_1row + run: + - name: indx_rangescan_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>999999 + - workload: scanG3_indx_rangescan_varying_rows_100Krows + run: + - name: indx_rangescan_100krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>900000 + - workload: scanG3_indx_rangescan_varying_rows_500Krows + run: + - name: indx_rangescan_500krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>500000 + - workload: scanG3_indx_rangescan_varying_rows_1Mrows + run: + - name: indx_rangescan_1Mrow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG5_pkey_hash_pointLookup_increasingColumn.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG5_pkey_hash_pointLookup_increasingColumn.yaml new file mode 100644 index 000000000..f7b5adb7b --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG5_pkey_hash_pointLookup_increasingColumn.yaml @@ -0,0 +1,104 @@ +#TEST FOR POSTGRES REGULAR TABLES +#GOAL5 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Point range lookup with different number of return columns (range primary key) +#TESTS: +# Time to fetch 1 column from schema that has 1 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 100 column from schema that has 100 column + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_pointLookup_1column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_10column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_100column_1; + - CREATE TABLE pkey_hash_pointLookup_1column_1(col_bigint_id_1 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_hash_pointLookup_10column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_hash_pointLookup_100column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint ,col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint ,col_bigint_16 bigint ,col_bigint_17 bigint ,col_bigint_18 bigint ,col_bigint_19 bigint ,col_bigint_20 bigint ,col_bigint_21 bigint ,col_bigint_22 bigint ,col_bigint_23 bigint ,col_bigint_24 bigint ,col_bigint_25 bigint ,col_bigint_26 bigint ,col_bigint_27 bigint ,col_bigint_28 bigint ,col_bigint_29 bigint ,col_bigint_30 bigint ,col_bigint_31 bigint ,col_bigint_32 bigint ,col_bigint_33 bigint ,col_bigint_34 bigint ,col_bigint_35 bigint ,col_bigint_36 bigint ,col_bigint_37 bigint ,col_bigint_38 bigint ,col_bigint_39 bigint ,col_bigint_40 bigint ,col_bigint_41 bigint ,col_bigint_42 bigint ,col_bigint_43 bigint ,col_bigint_44 bigint ,col_bigint_45 bigint ,col_bigint_46 bigint ,col_bigint_47 bigint ,col_bigint_48 bigint ,col_bigint_49 bigint ,col_bigint_50 bigint ,col_bigint_51 bigint ,col_bigint_52 bigint ,col_bigint_53 bigint ,col_bigint_54 bigint ,col_bigint_55 bigint ,col_bigint_56 bigint ,col_bigint_57 bigint ,col_bigint_58 bigint ,col_bigint_59 bigint ,col_bigint_60 bigint ,col_bigint_61 bigint ,col_bigint_62 bigint ,col_bigint_63 bigint ,col_bigint_64 bigint ,col_bigint_65 bigint ,col_bigint_66 bigint ,col_bigint_67 bigint ,col_bigint_68 bigint ,col_bigint_69 bigint ,col_bigint_70 bigint ,col_bigint_71 bigint ,col_bigint_72 bigint ,col_bigint_73 bigint ,col_bigint_74 bigint ,col_bigint_75 bigint ,col_bigint_76 bigint ,col_bigint_77 bigint ,col_bigint_78 bigint ,col_bigint_79 bigint ,col_bigint_80 bigint ,col_bigint_81 bigint ,col_bigint_82 bigint ,col_bigint_83 bigint ,col_bigint_84 bigint ,col_bigint_85 bigint ,col_bigint_86 bigint ,col_bigint_87 bigint ,col_bigint_88 bigint ,col_bigint_89 bigint ,col_bigint_90 bigint ,col_bigint_91 bigint ,col_bigint_92 bigint ,col_bigint_93 bigint ,col_bigint_94 bigint ,col_bigint_95 bigint ,col_bigint_96 bigint ,col_bigint_97 bigint ,col_bigint_98 bigint ,col_bigint_99 bigint,PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkey_hash_pointLookup_1column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_10column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_100column_1; + loadRules: + - table: pkey_hash_pointLookup_1column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - table: pkey_hash_pointLookup_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_hash_pointLookup_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanG5_pkey_hash_pointLookup_table1column_fetch1column + run: + - name: pkey_hash_pointLookup_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_1column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG5_pkey_hash_pointLookup_table10column_fetch10column + run: + - name: pkey_hash_pointLookup_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_10column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG5_pkey_hash_pointLookup_table100column_fetch100column + run: + - name: pkey_hash_pointLookup_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_100column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml new file mode 100644 index 000000000..beb54b220 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml @@ -0,0 +1,92 @@ +#TEST FOR POSTGRES REGULAR TABLES +#GOAL7 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Range lookup with different number of return columns (Range primary key) (full table scan) +#TESTS: +# Time to fetch 1 column from schema that has 1 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 100 column from schema that has 100 column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_1column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + - CREATE TABLE pkey_rangescan_fullTable_1column_1(col_bigint_id_1 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_10column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_100column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint ,col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint ,col_bigint_16 bigint ,col_bigint_17 bigint ,col_bigint_18 bigint ,col_bigint_19 bigint ,col_bigint_20 bigint ,col_bigint_21 bigint ,col_bigint_22 bigint ,col_bigint_23 bigint ,col_bigint_24 bigint ,col_bigint_25 bigint ,col_bigint_26 bigint ,col_bigint_27 bigint ,col_bigint_28 bigint ,col_bigint_29 bigint ,col_bigint_30 bigint ,col_bigint_31 bigint ,col_bigint_32 bigint ,col_bigint_33 bigint ,col_bigint_34 bigint ,col_bigint_35 bigint ,col_bigint_36 bigint ,col_bigint_37 bigint ,col_bigint_38 bigint ,col_bigint_39 bigint ,col_bigint_40 bigint ,col_bigint_41 bigint ,col_bigint_42 bigint ,col_bigint_43 bigint ,col_bigint_44 bigint ,col_bigint_45 bigint ,col_bigint_46 bigint ,col_bigint_47 bigint ,col_bigint_48 bigint ,col_bigint_49 bigint ,col_bigint_50 bigint ,col_bigint_51 bigint ,col_bigint_52 bigint ,col_bigint_53 bigint ,col_bigint_54 bigint ,col_bigint_55 bigint ,col_bigint_56 bigint ,col_bigint_57 bigint ,col_bigint_58 bigint ,col_bigint_59 bigint ,col_bigint_60 bigint ,col_bigint_61 bigint ,col_bigint_62 bigint ,col_bigint_63 bigint ,col_bigint_64 bigint ,col_bigint_65 bigint ,col_bigint_66 bigint ,col_bigint_67 bigint ,col_bigint_68 bigint ,col_bigint_69 bigint ,col_bigint_70 bigint ,col_bigint_71 bigint ,col_bigint_72 bigint ,col_bigint_73 bigint ,col_bigint_74 bigint ,col_bigint_75 bigint ,col_bigint_76 bigint ,col_bigint_77 bigint ,col_bigint_78 bigint ,col_bigint_79 bigint ,col_bigint_80 bigint ,col_bigint_81 bigint ,col_bigint_82 bigint ,col_bigint_83 bigint ,col_bigint_84 bigint ,col_bigint_85 bigint ,col_bigint_86 bigint ,col_bigint_87 bigint ,col_bigint_88 bigint ,col_bigint_89 bigint ,col_bigint_90 bigint ,col_bigint_91 bigint ,col_bigint_92 bigint ,col_bigint_93 bigint ,col_bigint_94 bigint ,col_bigint_95 bigint ,col_bigint_96 bigint ,col_bigint_97 bigint ,col_bigint_98 bigint ,col_bigint_99 bigint,PRIMARY KEY(col_bigint_id_1)); + + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_1column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + loadRules: + - table: pkey_rangescan_fullTable_1column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - table: pkey_rangescan_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanG7_pkey_rangescan_fullTable_table1column_fetch1column + run: + - name: pkey_rangescan_fullTable_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_1column_1 where col_bigint_id_1>1 + - workload: scanG7_pkey_rangescan_fullTable_table10column_fetch10column + run: + - name: pkey_rangescan_fullTable_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_10column_1 where col_bigint_id_1>1 + - workload: scanG7_pkey_rangescan_fullTable_table100column_fetch100column + run: + - name: pkey_rangescan_halfTable_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_100column_1 where col_bigint_id_1>1 diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..e7722715d --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,167 @@ +#TEST FOR POSTGRES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Scan of a non indexed column which returns 0 row (Whole table scan) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_5M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_10M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + cleanup: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + loadRules: + - table: noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG8_noIndex_fullTable_seqScan_1M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_1M_rows_1 where col_bigint_id_1>999999 + - workload: scanG8_noIndex_fullTable_seqScan_5M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_5M_rows_1 where col_bigint_id_1>4999999 + - workload: scanG8_noIndex_fullTable_seqScan_10M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_10M_rows_1 where col_bigint_id_1>9999999 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..2265dc5b7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/postgres/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,164 @@ +#TEST FOR POSTGRES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# count(*) query (Pushdown to docdb) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE count_noIndex_fullTable_seqScan_1M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_5M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_10M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + cleanup: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + loadRules: + - table: count_noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG9_count_noIndex_fullTable_seqScan_1M_rows + run: + - name: count_noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_1M_rows_1 + - workload: scanG9_count_noIndex_fullTable_seqScan_5M_rows + run: + - name: count_noIndex_fullTable_seqScan_5M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_5M_rows_1 + - workload: scanG9_count_noIndex_fullTable_seqScan_10M_rows + run: + - name: count_noIndex_fullTable_seqScan_10M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_10M_rows_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml new file mode 100644 index 000000000..456682408 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml @@ -0,0 +1,131 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key IN scan with additional projected column - Varying number of IN options +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 10 rows +# Range scan time to fetch 100 rows +# Range scan time to fetch 1000 rows +# Range scan time to fetch 10000 rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + - CREATE TABLE pkey_rangescan_for_INclause_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + loadRules: + - table: pkey_rangescan_for_INclause_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_1row + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_10row + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_100row + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 100 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_1000row + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + explain-plan-rc-validation: 1000 + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_10000row + customTags: customer=1,schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + explain-plan-rc-validation: 10000 + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG12_bitmapscan_orCondition.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG12_bitmapscan_orCondition.yaml new file mode 100644 index 000000000..be8cfb928 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG12_bitmapscan_orCondition.yaml @@ -0,0 +1,131 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL12 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Bitmap scan with OR conditions on pkey and hash and range indexed columns +#TESTS: +# Bitmap scan time to fetch 10 rows +# Bitmap scan time to fetch 100 rows +# Bitmap scan time to fetch 1000 rows +# Bitmap scan time to fetch 10000 rows +# Bitmap scan time to fetch 10000 primary keys with only secondary index conditions +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_for_bitmapscan_tbl_1; + - CREATE TABLE pkey_for_bitmapscan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON pkey_for_bitmapscan_tbl_1 (col_bigint_2 ASC); + - CREATE INDEX ON pkey_for_bitmapscan_tbl_1 (col_bigint_3 ASC); + cleanup: + - DROP TABLE IF EXISTS pkey_for_bitmapscan_tbl_1; + loadRules: + - table: pkey_for_bitmapscan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG12_bitmapscan_orCondition_10row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 3 OR col_bigint_2 <= 3 OR col_bigint_3 IN (?,?,?) + bindings: + count: 3 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_100row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 33 OR col_bigint_2 <= 33 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 33 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_1000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 333 OR col_bigint_2 <= 333 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 333 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_10000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 <= 3333 OR col_bigint_2 <= 3333 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 3333 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_onlyTargetPkey_10000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_2 <= 5000 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 5000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG13_wideSchema_fullTableScan.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG13_wideSchema_fullTableScan.yaml new file mode 100644 index 000000000..32b549bc1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG13_wideSchema_fullTableScan.yaml @@ -0,0 +1,77 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain: true +works: + work: + time_secs: 30 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS wide_table_50kB; + - drop table IF EXISTS wide_table_200kB; + - CREATE TABLE wide_table_50kB (int_col1 INT PRIMARY KEY, int_col2 INT, text_col1 TEXT, text_col2 TEXT, text_col3 TEXT, text_col4 TEXT, text_col5 TEXT, text_col6 TEXT, text_col7 TEXT, text_col8 TEXT, text_col9 TEXT, text_col10 TEXT); + - CREATE TABLE wide_table_200kB (int_col1 INT PRIMARY KEY, int_col2 INT, text_col1 TEXT, text_col2 TEXT, text_col3 TEXT, text_col4 TEXT, text_col5 TEXT, text_col6 TEXT, text_col7 TEXT, text_col8 TEXT, text_col9 TEXT, text_col10 TEXT); + + afterLoad: + - CREATE INDEX idx_int_col2_50kB ON wide_table_50kB(int_col2); + - CREATE INDEX idx_int_col2_200kB ON wide_table_200kB(int_col2); + + loadRules: + - table: wide_table_50kB + rows: 10000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 10000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 10000] + - name: text_col + count: 10 + util: RandomAString + params: [5000, 5000] + + - table: wide_table_200kB + rows: 10000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 10000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 10000] + - name: text_col + count: 10 + util: RandomAString + params: [20000, 20000] + + executeRules: + - workload: select_50kB + time_secs: 30 + run: + - name: select_50kB + weight: 100 + queries: + - query: SELECT * FROM wide_table_50kB; + + - workload: select_200kB + time_secs: 30 + run: + - name: select_200kB + weight: 100 + queries: + - query: SELECT * FROM wide_table_200kB; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG2_pkey_rangeScan_increasingRows.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG2_pkey_rangeScan_increasingRows.yaml new file mode 100644 index 000000000..268dbcae0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG2_pkey_rangeScan_increasingRows.yaml @@ -0,0 +1,101 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL2 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_tbl_1; + - CREATE TABLE pkey_rangescan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_tbl_1; + loadRules: + - table: pkey_rangescan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG2_pkey_rangescan_varying_rows_1row + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>999999 + - workload: scanG2_pkey_rangescan_varying_rows_100Krows + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_100krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>900000 + - workload: scanG2_pkey_rangescan_varying_rows_500Krows + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_500krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>500000 + - workload: scanG2_pkey_rangescan_varying_rows_1Mrows + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_1Mrow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>1 diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG3_index_rangeScan_increasingRows.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG3_index_rangeScan_increasingRows.yaml new file mode 100644 index 000000000..61dcc9ad7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG3_index_rangeScan_increasingRows.yaml @@ -0,0 +1,103 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL3 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Indexed column range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indx_rangescan_tbl_1; + - CREATE TABLE indx_rangescan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE INDEX ON indx_rangescan_tbl_1(col_bigint_id_1 ASC); + cleanup: + - DROP TABLE IF EXISTS indx_rangescan_tbl_1; + loadRules: + - table: indx_rangescan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanG3_indx_rangescan_varying_rows_1row + customTags: schematype=colocated,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>999999 + - workload: scanG3_indx_rangescan_varying_rows_100Krows + customTags: schematype=colocated,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_100krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>900000 + - workload: scanG3_indx_rangescan_varying_rows_500Krows + customTags: schematype=colocated,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_500krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>500000 + - workload: scanG3_indx_rangescan_varying_rows_1Mrows + customTags: schematype=colocated,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_1Mrow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG5_pkey_hash_pointLookup_increasingColumn.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG5_pkey_hash_pointLookup_increasingColumn.yaml new file mode 100644 index 000000000..746953c69 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG5_pkey_hash_pointLookup_increasingColumn.yaml @@ -0,0 +1,109 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL5 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Point hash lookup with different number of return columns (Hash primary key) +#TESTS: +# Time to fetch 1 column from schema that has 1 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 100 column from schema that has 100 column + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_pointLookup_1column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_10column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_100column_1; + - CREATE TABLE pkey_hash_pointLookup_1column_1(col_bigint_id_1 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_hash_pointLookup_10column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_hash_pointLookup_100column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint ,col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint ,col_bigint_16 bigint ,col_bigint_17 bigint ,col_bigint_18 bigint ,col_bigint_19 bigint ,col_bigint_20 bigint ,col_bigint_21 bigint ,col_bigint_22 bigint ,col_bigint_23 bigint ,col_bigint_24 bigint ,col_bigint_25 bigint ,col_bigint_26 bigint ,col_bigint_27 bigint ,col_bigint_28 bigint ,col_bigint_29 bigint ,col_bigint_30 bigint ,col_bigint_31 bigint ,col_bigint_32 bigint ,col_bigint_33 bigint ,col_bigint_34 bigint ,col_bigint_35 bigint ,col_bigint_36 bigint ,col_bigint_37 bigint ,col_bigint_38 bigint ,col_bigint_39 bigint ,col_bigint_40 bigint ,col_bigint_41 bigint ,col_bigint_42 bigint ,col_bigint_43 bigint ,col_bigint_44 bigint ,col_bigint_45 bigint ,col_bigint_46 bigint ,col_bigint_47 bigint ,col_bigint_48 bigint ,col_bigint_49 bigint ,col_bigint_50 bigint ,col_bigint_51 bigint ,col_bigint_52 bigint ,col_bigint_53 bigint ,col_bigint_54 bigint ,col_bigint_55 bigint ,col_bigint_56 bigint ,col_bigint_57 bigint ,col_bigint_58 bigint ,col_bigint_59 bigint ,col_bigint_60 bigint ,col_bigint_61 bigint ,col_bigint_62 bigint ,col_bigint_63 bigint ,col_bigint_64 bigint ,col_bigint_65 bigint ,col_bigint_66 bigint ,col_bigint_67 bigint ,col_bigint_68 bigint ,col_bigint_69 bigint ,col_bigint_70 bigint ,col_bigint_71 bigint ,col_bigint_72 bigint ,col_bigint_73 bigint ,col_bigint_74 bigint ,col_bigint_75 bigint ,col_bigint_76 bigint ,col_bigint_77 bigint ,col_bigint_78 bigint ,col_bigint_79 bigint ,col_bigint_80 bigint ,col_bigint_81 bigint ,col_bigint_82 bigint ,col_bigint_83 bigint ,col_bigint_84 bigint ,col_bigint_85 bigint ,col_bigint_86 bigint ,col_bigint_87 bigint ,col_bigint_88 bigint ,col_bigint_89 bigint ,col_bigint_90 bigint ,col_bigint_91 bigint ,col_bigint_92 bigint ,col_bigint_93 bigint ,col_bigint_94 bigint ,col_bigint_95 bigint ,col_bigint_96 bigint ,col_bigint_97 bigint ,col_bigint_98 bigint ,col_bigint_99 bigint,PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkey_hash_pointLookup_1column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_10column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_100column_1; + loadRules: + - table: pkey_hash_pointLookup_1column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - table: pkey_hash_pointLookup_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_hash_pointLookup_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanG5_pkey_hash_pointLookup_table1column_fetch1column + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: pkey_hash_pointLookup_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_1column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG5_pkey_hash_pointLookup_table10column_fetch10column + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: pkey_hash_pointLookup_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_10column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG5_pkey_hash_pointLookup_table100column_fetch100column + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=all,filtercount=one,filteron=rangepkey,filtertype=pointselect,queryshape=scan + run: + - name: pkey_hash_pointLookup_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_100column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml new file mode 100644 index 000000000..04153630b --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml @@ -0,0 +1,97 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL7 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Range lookup with different number of return columns (Range primary key) (full table scan) +#TESTS: +# Time to fetch 1 column from schema that has 1 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 100 column from schema that has 100 column +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_1column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + - CREATE TABLE pkey_rangescan_fullTable_1column_1(col_bigint_id_1 bigint,PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkey_rangescan_fullTable_10column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint,PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkey_rangescan_fullTable_100column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint ,col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint ,col_bigint_16 bigint ,col_bigint_17 bigint ,col_bigint_18 bigint ,col_bigint_19 bigint ,col_bigint_20 bigint ,col_bigint_21 bigint ,col_bigint_22 bigint ,col_bigint_23 bigint ,col_bigint_24 bigint ,col_bigint_25 bigint ,col_bigint_26 bigint ,col_bigint_27 bigint ,col_bigint_28 bigint ,col_bigint_29 bigint ,col_bigint_30 bigint ,col_bigint_31 bigint ,col_bigint_32 bigint ,col_bigint_33 bigint ,col_bigint_34 bigint ,col_bigint_35 bigint ,col_bigint_36 bigint ,col_bigint_37 bigint ,col_bigint_38 bigint ,col_bigint_39 bigint ,col_bigint_40 bigint ,col_bigint_41 bigint ,col_bigint_42 bigint ,col_bigint_43 bigint ,col_bigint_44 bigint ,col_bigint_45 bigint ,col_bigint_46 bigint ,col_bigint_47 bigint ,col_bigint_48 bigint ,col_bigint_49 bigint ,col_bigint_50 bigint ,col_bigint_51 bigint ,col_bigint_52 bigint ,col_bigint_53 bigint ,col_bigint_54 bigint ,col_bigint_55 bigint ,col_bigint_56 bigint ,col_bigint_57 bigint ,col_bigint_58 bigint ,col_bigint_59 bigint ,col_bigint_60 bigint ,col_bigint_61 bigint ,col_bigint_62 bigint ,col_bigint_63 bigint ,col_bigint_64 bigint ,col_bigint_65 bigint ,col_bigint_66 bigint ,col_bigint_67 bigint ,col_bigint_68 bigint ,col_bigint_69 bigint ,col_bigint_70 bigint ,col_bigint_71 bigint ,col_bigint_72 bigint ,col_bigint_73 bigint ,col_bigint_74 bigint ,col_bigint_75 bigint ,col_bigint_76 bigint ,col_bigint_77 bigint ,col_bigint_78 bigint ,col_bigint_79 bigint ,col_bigint_80 bigint ,col_bigint_81 bigint ,col_bigint_82 bigint ,col_bigint_83 bigint ,col_bigint_84 bigint ,col_bigint_85 bigint ,col_bigint_86 bigint ,col_bigint_87 bigint ,col_bigint_88 bigint ,col_bigint_89 bigint ,col_bigint_90 bigint ,col_bigint_91 bigint ,col_bigint_92 bigint ,col_bigint_93 bigint ,col_bigint_94 bigint ,col_bigint_95 bigint ,col_bigint_96 bigint ,col_bigint_97 bigint ,col_bigint_98 bigint ,col_bigint_99 bigint,PRIMARY KEY(col_bigint_id_1 ASC)); + + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_1column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + loadRules: + - table: pkey_rangescan_fullTable_1column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - table: pkey_rangescan_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanG7_pkey_rangescan_fullTable_table1column_fetch1column + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_fullTable_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_1column_1 where col_bigint_id_1>1 + - workload: scanG7_pkey_rangescan_fullTable_table10column_fetch10column + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_fullTable_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_10column_1 where col_bigint_id_1>1 + - workload: scanG7_pkey_rangescan_fullTable_table100column_fetch100column + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_halfTable_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_100column_1 where col_bigint_id_1>1 diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..95e9dbbd9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,169 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Scan of a non indexed column which returns 0 row (Whole table scan) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_5M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_10M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + cleanup: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + loadRules: + - table: noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG8_noIndex_fullTable_seqScan_1M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_1M_rows_1 where col_bigint_id_1>999999 + - workload: scanG8_noIndex_fullTable_seqScan_5M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_5M_rows_1 where col_bigint_id_1>4999999 + - workload: scanG8_noIndex_fullTable_seqScan_10M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_10M_rows_1 where col_bigint_id_1>9999999 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..62146eb94 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yb_colocated/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,169 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# count(*) query (Pushdown to docdb) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE count_noIndex_fullTable_seqScan_1M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_5M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_10M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + cleanup: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + loadRules: + - table: count_noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG9_count_noIndex_fullTable_seqScan_1M_rows + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=aggregate,filtercount=one,queryshape=scan + run: + - name: count_noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_1M_rows_1 + - workload: scanG9_count_noIndex_fullTable_seqScan_5M_rows + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=aggregate,filtercount=one,queryshape=scan + run: + - name: count_noIndex_fullTable_seqScan_5M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_5M_rows_1 + - workload: scanG9_count_noIndex_fullTable_seqScan_10M_rows + customTags: schematype=colocated,partition=range,pkey=asc,cardinality=single,projection=aggregate,filtercount=one,queryshape=scan + run: + - name: count_noIndex_fullTable_seqScan_10M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_10M_rows_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG10_seqscan_increasingTabletCount.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG10_seqscan_increasingTabletCount.yaml new file mode 100644 index 000000000..0a2748e9a --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG10_seqscan_increasingTabletCount.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL10 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# One vs more tablets (use SPLIT INTO) +#TESTS: +# Select operations(seq scan) on 3 tablet with 1 million rows +# Select operations(seq scan) on 6 tablet with 1 million rows +# Select operations(seq scan) on 12 tablet with 1 million rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_3tablets_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_6tablets_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_12tablets_1; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_3tablets_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)) SPLIT INTO 3 TABLETS; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_6tablets_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)) SPLIT INTO 6 TABLETS; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_12tablets_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)) SPLIT INTO 12 TABLETS; + cleanup: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_3tablets_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_6tablets_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_12tablets_1; + loadRules: + - table: noIndex_fullTable_seqScan_1M_rows_3tablets_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_1M_rows_6tablets_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_1M_rows_12tablets_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG10_noIndex_fullTable_seqScan_1M_rows_3tablets + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_3tablets_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_1M_rows_3tablets_1 where col_bigint_id_1>999999 + - workload: scanG10_noIndex_fullTable_seqScan_1M_rows_6tablets + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_6tablets_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_1M_rows_6tablets_1 where col_bigint_id_1>999999 + - workload: scanG10_noIndex_fullTable_seqScan_1M_rows_12tablets + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_12tablets_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_1M_rows_12tablets_1 where col_bigint_id_1>999999 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml new file mode 100644 index 000000000..d39e968a6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG11_pkey_rangeScan_INclause_project_indexed_nonindexed_cols.yaml @@ -0,0 +1,128 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key IN scan with additional projected column - Varying number of IN options +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 10 rows +# Range scan time to fetch 100 rows +# Range scan time to fetch 1000 rows +# Range scan time to fetch 10000 rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + - CREATE TABLE pkey_rangescan_for_INclause_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + loadRules: + - table: pkey_rangescan_for_INclause_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_1row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_10row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_100row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 100 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_1000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG11_pkey_INclause_rangescan_increasing_rows_10000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_rangescan_for_INclause_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG12_bitmapscan_orCondition.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG12_bitmapscan_orCondition.yaml new file mode 100644 index 000000000..473c6fb79 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG12_bitmapscan_orCondition.yaml @@ -0,0 +1,130 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL12 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Bitmap scan with OR conditions on pkey and hash and range indexed columns +#TESTS: +# Bitmap scan time to fetch 10 rows +# Bitmap scan time to fetch 100 rows +# Bitmap scan time to fetch 1000 rows +# Bitmap scan time to fetch 10000 rows +# Bitmap scan time to fetch 10000 primary keys with only secondary index conditions +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_for_bitmapscan_tbl_1; + - CREATE TABLE pkey_for_bitmapscan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 HASH)); + - CREATE INDEX ON pkey_for_bitmapscan_tbl_1 (col_bigint_2 ASC); + - CREATE INDEX ON pkey_for_bitmapscan_tbl_1 (col_bigint_3 HASH); + cleanup: + - DROP TABLE IF EXISTS pkey_for_bitmapscan_tbl_1; + loadRules: + - table: pkey_for_bitmapscan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG12_bitmapscan_orCondition_10row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 IN (?,?,?) OR col_bigint_2 <= 3 OR col_bigint_3 IN (?,?,?) + bindings: + count: 6 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_100row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) OR col_bigint_2 <= 33 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 66 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_1000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) OR col_bigint_2 <= 333 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 666 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_10000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1, col_bigint_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) OR col_bigint_2 <= 3333 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 6666 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG12_bitmapscan_orCondition_onlyTargetPkey_10000row + customTags: customer=1,schematype=regular,partition=range,pkey=asc,cardinality=single,projection=multiple,filtercount=one,filteron=rangeskey,filtertype=IN,queryshape=scan + run: + - name: pkey_INclause_rangescan_increasing_rows_10000row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_for_bitmapscan_tbl_1 where col_bigint_2 <= 5000 OR col_bigint_3 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 5000 + util: RandomNumber + params: [ 1, 1000000 ] diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG13_wideSchema_fullTableScan.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG13_wideSchema_fullTableScan.yaml new file mode 100644 index 000000000..08a35e56e --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG13_wideSchema_fullTableScan.yaml @@ -0,0 +1,76 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain: true +works: + work: + time_secs: 30 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS wide_table_50kB; + - drop table IF EXISTS wide_table_200kB; + - CREATE TABLE wide_table_50kB (int_col1 INT PRIMARY KEY, int_col2 INT, text_col1 TEXT, text_col2 TEXT, text_col3 TEXT, text_col4 TEXT, text_col5 TEXT, text_col6 TEXT, text_col7 TEXT, text_col8 TEXT, text_col9 TEXT, text_col10 TEXT); + - CREATE TABLE wide_table_200kB (int_col1 INT PRIMARY KEY, int_col2 INT, text_col1 TEXT, text_col2 TEXT, text_col3 TEXT, text_col4 TEXT, text_col5 TEXT, text_col6 TEXT, text_col7 TEXT, text_col8 TEXT, text_col9 TEXT, text_col10 TEXT); + + afterLoad: + - CREATE INDEX idx_int_col2_50kB ON wide_table_50kB(int_col2); + - CREATE INDEX idx_int_col2_200kB ON wide_table_200kB(int_col2); + + loadRules: + - table: wide_table_50kB + rows: 10000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 10000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 10000] + - name: text_col + count: 10 + util: RandomAString + params: [5000, 5000] + + - table: wide_table_200kB + rows: 10000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 10000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 10000] + - name: text_col + count: 10 + util: RandomAString + params: [20000, 20000] + + executeRules: + - workload: select_50kB + time_secs: 30 + run: + - name: select_50kB + weight: 100 + queries: + - query: SELECT * FROM wide_table_50kB; + + - workload: select_200kB + time_secs: 30 + run: + - name: select_200kB + weight: 100 + queries: + - query: SELECT * FROM wide_table_200kB; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG2_pkey_rangeScan_increasingRows.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG2_pkey_rangeScan_increasingRows.yaml new file mode 100644 index 000000000..6436c0a56 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG2_pkey_rangeScan_increasingRows.yaml @@ -0,0 +1,100 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL2 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_tbl_1; + - CREATE TABLE pkey_rangescan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_tbl_1; + loadRules: + - table: pkey_rangescan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG2_pkey_rangescan_varying_rows_1row + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>999999 + - workload: scanG2_pkey_rangescan_varying_rows_100Krows + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_100krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>900000 + - workload: scanG2_pkey_rangescan_varying_rows_500Krows + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_500krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>500000 + - workload: scanG2_pkey_rangescan_varying_rows_1Mrows + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_1Mrow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_rangescan_tbl_1 where col_bigint_id_1>1 diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG3_index_rangeScan_increasingRows.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG3_index_rangeScan_increasingRows.yaml new file mode 100644 index 000000000..47fd576bf --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG3_index_rangeScan_increasingRows.yaml @@ -0,0 +1,102 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL3 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Indexed column range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indx_rangescan_tbl_1; + - CREATE TABLE indx_rangescan_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE INDEX ON indx_rangescan_tbl_1(col_bigint_id_1 ASC); + cleanup: + - DROP TABLE IF EXISTS indx_rangescan_tbl_1; + loadRules: + - table: indx_rangescan_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanG3_indx_rangescan_varying_rows_1row + customTags: schematype=regular,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_1row_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>999999 + - workload: scanG3_indx_rangescan_varying_rows_100Krows + customTags: schematype=regular,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_100krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>900000 + - workload: scanG3_indx_rangescan_varying_rows_500Krows + customTags: schematype=regular,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_500krow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>500000 + - workload: scanG3_indx_rangescan_varying_rows_1Mrows + customTags: schematype=regular,partition=range,skey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangeskey,filtertype=comparision,queryshape=scan + run: + - name: indx_rangescan_1Mrow_test + weight: 100 + queries: + - query: select col_bigint_id_1 from indx_rangescan_tbl_1 where col_bigint_id_1>1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG5_pkey_hash_pointLookup_increasingColumn.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG5_pkey_hash_pointLookup_increasingColumn.yaml new file mode 100644 index 000000000..6a5d225b8 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG5_pkey_hash_pointLookup_increasingColumn.yaml @@ -0,0 +1,108 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL5 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Point hash lookup with different number of return columns (Hash primary key) +#TESTS: +# Time to fetch 1 column from schema that has 1 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 100 column from schema that has 100 column + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_pointLookup_1column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_10column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_100column_1; + - CREATE TABLE pkey_hash_pointLookup_1column_1(col_bigint_id_1 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_hash_pointLookup_10column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint,PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_hash_pointLookup_100column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint ,col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint ,col_bigint_16 bigint ,col_bigint_17 bigint ,col_bigint_18 bigint ,col_bigint_19 bigint ,col_bigint_20 bigint ,col_bigint_21 bigint ,col_bigint_22 bigint ,col_bigint_23 bigint ,col_bigint_24 bigint ,col_bigint_25 bigint ,col_bigint_26 bigint ,col_bigint_27 bigint ,col_bigint_28 bigint ,col_bigint_29 bigint ,col_bigint_30 bigint ,col_bigint_31 bigint ,col_bigint_32 bigint ,col_bigint_33 bigint ,col_bigint_34 bigint ,col_bigint_35 bigint ,col_bigint_36 bigint ,col_bigint_37 bigint ,col_bigint_38 bigint ,col_bigint_39 bigint ,col_bigint_40 bigint ,col_bigint_41 bigint ,col_bigint_42 bigint ,col_bigint_43 bigint ,col_bigint_44 bigint ,col_bigint_45 bigint ,col_bigint_46 bigint ,col_bigint_47 bigint ,col_bigint_48 bigint ,col_bigint_49 bigint ,col_bigint_50 bigint ,col_bigint_51 bigint ,col_bigint_52 bigint ,col_bigint_53 bigint ,col_bigint_54 bigint ,col_bigint_55 bigint ,col_bigint_56 bigint ,col_bigint_57 bigint ,col_bigint_58 bigint ,col_bigint_59 bigint ,col_bigint_60 bigint ,col_bigint_61 bigint ,col_bigint_62 bigint ,col_bigint_63 bigint ,col_bigint_64 bigint ,col_bigint_65 bigint ,col_bigint_66 bigint ,col_bigint_67 bigint ,col_bigint_68 bigint ,col_bigint_69 bigint ,col_bigint_70 bigint ,col_bigint_71 bigint ,col_bigint_72 bigint ,col_bigint_73 bigint ,col_bigint_74 bigint ,col_bigint_75 bigint ,col_bigint_76 bigint ,col_bigint_77 bigint ,col_bigint_78 bigint ,col_bigint_79 bigint ,col_bigint_80 bigint ,col_bigint_81 bigint ,col_bigint_82 bigint ,col_bigint_83 bigint ,col_bigint_84 bigint ,col_bigint_85 bigint ,col_bigint_86 bigint ,col_bigint_87 bigint ,col_bigint_88 bigint ,col_bigint_89 bigint ,col_bigint_90 bigint ,col_bigint_91 bigint ,col_bigint_92 bigint ,col_bigint_93 bigint ,col_bigint_94 bigint ,col_bigint_95 bigint ,col_bigint_96 bigint ,col_bigint_97 bigint ,col_bigint_98 bigint ,col_bigint_99 bigint,PRIMARY KEY(col_bigint_id_1)); + cleanup: + - DROP TABLE IF EXISTS pkey_hash_pointLookup_1column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_10column_1; + - DROP TABLE IF EXISTS pkey_hash_pointLookup_100column_1; + loadRules: + - table: pkey_hash_pointLookup_1column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - table: pkey_hash_pointLookup_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_hash_pointLookup_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanG5_pkey_hash_pointLookup_table1column_fetch1column + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: pkey_hash_pointLookup_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_1column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG5_pkey_hash_pointLookup_table10column_fetch10column + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: pkey_hash_pointLookup_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_10column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] + - workload: scanG5_pkey_hash_pointLookup_table100column_fetch100column + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=all,filtercount=one,filteron=hashpkey,filtertype=pointselect,queryshape=scan + run: + - name: pkey_hash_pointLookup_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_hash_pointLookup_100column_1 where col_bigint_id_1=(?) + bindings: + count: 1 + util: RandomNumber + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml new file mode 100644 index 000000000..d84136a68 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG7_pkey_rangescan_fullTableScan_increasingColumn.yaml @@ -0,0 +1,96 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL7 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Range lookup with different number of return columns (Range primary key) (full table scan) +#TESTS: +# Time to fetch 1 column from schema that has 1 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 100 column from schema that has 100 column +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_1column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + - CREATE TABLE pkey_rangescan_fullTable_1column_1(col_bigint_id_1 bigint,PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkey_rangescan_fullTable_10column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint,PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE TABLE pkey_rangescan_fullTable_100column_1(col_bigint_id_1 bigint,col_bigint_1 bigint ,col_bigint_2 bigint ,col_bigint_3 bigint ,col_bigint_4 bigint ,col_bigint_5 bigint ,col_bigint_6 bigint ,col_bigint_7 bigint ,col_bigint_8 bigint ,col_bigint_9 bigint ,col_bigint_10 bigint ,col_bigint_11 bigint ,col_bigint_12 bigint ,col_bigint_13 bigint ,col_bigint_14 bigint ,col_bigint_15 bigint ,col_bigint_16 bigint ,col_bigint_17 bigint ,col_bigint_18 bigint ,col_bigint_19 bigint ,col_bigint_20 bigint ,col_bigint_21 bigint ,col_bigint_22 bigint ,col_bigint_23 bigint ,col_bigint_24 bigint ,col_bigint_25 bigint ,col_bigint_26 bigint ,col_bigint_27 bigint ,col_bigint_28 bigint ,col_bigint_29 bigint ,col_bigint_30 bigint ,col_bigint_31 bigint ,col_bigint_32 bigint ,col_bigint_33 bigint ,col_bigint_34 bigint ,col_bigint_35 bigint ,col_bigint_36 bigint ,col_bigint_37 bigint ,col_bigint_38 bigint ,col_bigint_39 bigint ,col_bigint_40 bigint ,col_bigint_41 bigint ,col_bigint_42 bigint ,col_bigint_43 bigint ,col_bigint_44 bigint ,col_bigint_45 bigint ,col_bigint_46 bigint ,col_bigint_47 bigint ,col_bigint_48 bigint ,col_bigint_49 bigint ,col_bigint_50 bigint ,col_bigint_51 bigint ,col_bigint_52 bigint ,col_bigint_53 bigint ,col_bigint_54 bigint ,col_bigint_55 bigint ,col_bigint_56 bigint ,col_bigint_57 bigint ,col_bigint_58 bigint ,col_bigint_59 bigint ,col_bigint_60 bigint ,col_bigint_61 bigint ,col_bigint_62 bigint ,col_bigint_63 bigint ,col_bigint_64 bigint ,col_bigint_65 bigint ,col_bigint_66 bigint ,col_bigint_67 bigint ,col_bigint_68 bigint ,col_bigint_69 bigint ,col_bigint_70 bigint ,col_bigint_71 bigint ,col_bigint_72 bigint ,col_bigint_73 bigint ,col_bigint_74 bigint ,col_bigint_75 bigint ,col_bigint_76 bigint ,col_bigint_77 bigint ,col_bigint_78 bigint ,col_bigint_79 bigint ,col_bigint_80 bigint ,col_bigint_81 bigint ,col_bigint_82 bigint ,col_bigint_83 bigint ,col_bigint_84 bigint ,col_bigint_85 bigint ,col_bigint_86 bigint ,col_bigint_87 bigint ,col_bigint_88 bigint ,col_bigint_89 bigint ,col_bigint_90 bigint ,col_bigint_91 bigint ,col_bigint_92 bigint ,col_bigint_93 bigint ,col_bigint_94 bigint ,col_bigint_95 bigint ,col_bigint_96 bigint ,col_bigint_97 bigint ,col_bigint_98 bigint ,col_bigint_99 bigint,PRIMARY KEY(col_bigint_id_1 ASC)); + + cleanup: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_1column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + loadRules: + - table: pkey_rangescan_fullTable_1column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - table: pkey_rangescan_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanG7_pkey_rangescan_fullTable_table1column_fetch1column + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_fullTable_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_1column_1 where col_bigint_id_1>1 + - workload: scanG7_pkey_rangescan_fullTable_table10column_fetch10column + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_fullTable_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_10column_1 where col_bigint_id_1>1 + - workload: scanG7_pkey_rangescan_fullTable_table100column_fetch100column + customTags: schematype=regular,partition=range,pkey=asc,cardinality=single,projection=indexed,filtercount=one,filteron=rangepkey,filtertype=comparision,queryshape=scan + run: + - name: pkey_rangescan_halfTable_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_100column_1 where col_bigint_id_1>1 diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..5b1019693 --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG8_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Scan of a non indexed column which returns 0 row (Whole table scan) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_5M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_10M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + cleanup: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + loadRules: + - table: noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG8_noIndex_fullTable_seqScan_1M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_1M_rows_1 where col_bigint_id_1>999999 + - workload: scanG8_noIndex_fullTable_seqScan_5M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_5M_rows_1 where col_bigint_id_1>4999999 + - workload: scanG8_noIndex_fullTable_seqScan_10M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=nonindexed,filtercount=one,filteron=nonindexed,filtertype=comparision,queryshape=scan + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select col_bigint_id_1 from noIndex_fullTable_seqScan_10M_rows_1 where col_bigint_id_1>9999999 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..bc7eef31b --- /dev/null +++ b/config/yugabyte/regression_pipelines/scan_workloads/yugabyte/scanG9_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,168 @@ +#TEST FOR YUGABYTE REGULAR TABLES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# count(*) query (Pushdown to docdb) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=false +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE count_noIndex_fullTable_seqScan_1M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_5M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_10M_rows_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + cleanup: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + loadRules: + - table: count_noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG9_count_noIndex_fullTable_seqScan_1M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=aggregate,filtercount=one,queryshape=scan + run: + - name: count_noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_1M_rows_1 + - workload: scanG9_count_noIndex_fullTable_seqScan_5M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=aggregate,filtercount=one,queryshape=scan + run: + - name: count_noIndex_fullTable_seqScan_5M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_5M_rows_1 + - workload: scanG9_count_noIndex_fullTable_seqScan_10M_rows + customTags: schematype=regular,partition=hash,pkey=hash,cardinality=single,projection=aggregate,filtercount=one,queryshape=scan + run: + - name: count_noIndex_fullTable_seqScan_10M_rows_test + weight: 100 + queries: + - query: select count(col_bigint_id_1) from count_noIndex_fullTable_seqScan_10M_rows_1 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_for_update_varying_limit.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_for_update_varying_limit.yaml new file mode 100644 index 000000000..53f7cb330 --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_for_update_varying_limit.yaml @@ -0,0 +1,110 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 10 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id)); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_1_without_contention + run: + - name: SL_limit_1_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 1; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_10_without_contention + run: + - name: SL_limit_10_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 10; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_100_without_contention + run: + - name: SL_limit_100_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_1000_without_contention + run: + - name: SL_limit_1000_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 1000; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_no_read_ahead_varying_contention.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_no_read_ahead_varying_contention.yaml new file mode 100644 index 000000000..363443430 --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_no_read_ahead_varying_contention.yaml @@ -0,0 +1,152 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 10 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id)); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_without_contention + run: + - name: no_contention_queries + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_20%_contention + run: + - name: contention_queries + weight: 20 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 80 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_40%_contention + run: + - name: contention_queries + weight: 40 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 60 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_60%_contention + run: + - name: contention_queries + weight: 60 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 40 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_80%_contention + run: + - name: contention_queries + weight: 80 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 20 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_100%_contention + run: + - name: contention_queries + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_no_read_ahead_varying_limit.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_no_read_ahead_varying_limit.yaml new file mode 100644 index 000000000..e7071f432 --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/postgres/SL_no_read_ahead_varying_limit.yaml @@ -0,0 +1,110 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 10 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id)); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_1_without_contention + run: + - name: SL_limit_1_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 1; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_10_without_contention + run: + - name: SL_limit_10_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 10; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_100_without_contention + run: + - name: SL_limit_100_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_1000_without_contention + run: + - name: SL_limit_1000_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 1000; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_for_update_varying_limit.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_for_update_varying_limit.yaml new file mode 100644 index 000000000..7c586477d --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_for_update_varying_limit.yaml @@ -0,0 +1,107 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 10 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_1_without_contention + run: + - name: SL_limit_1_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 1; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_10_without_contention + run: + - name: SL_limit_10_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 10; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_100_without_contention + run: + - name: SL_limit_100_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_1000_without_contention + run: + - name: SL_limit_1000_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE LIMIT 1000; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_no_read_ahead_varying_contention.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_no_read_ahead_varying_contention.yaml new file mode 100644 index 000000000..e688b0906 --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_no_read_ahead_varying_contention.yaml @@ -0,0 +1,149 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 10 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_without_contention + run: + - name: no_contention_queries + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_20%_contention + run: + - name: contention_queries + weight: 20 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 80 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_40%_contention + run: + - name: contention_queries + weight: 40 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 60 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_60%_contention + run: + - name: contention_queries + weight: 60 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 40 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_80%_contention + run: + - name: contention_queries + weight: 80 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 20 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_100%_contention + run: + - name: contention_queries + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_no_read_ahead_varying_limit.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_no_read_ahead_varying_limit.yaml new file mode 100644 index 000000000..c91298d50 --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_no_read_ahead_varying_limit.yaml @@ -0,0 +1,107 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 10 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_1_without_contention + run: + - name: SL_limit_1_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 1; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_10_without_contention + run: + - name: SL_limit_10_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 10; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_100_without_contention + run: + - name: SL_limit_100_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_1000_without_contention + run: + - name: SL_limit_1000_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 1000; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_read_ahead_50_varying_contention.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_read_ahead_50_varying_contention.yaml new file mode 100644 index 000000000..c9fdce2df --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_read_ahead_50_varying_contention.yaml @@ -0,0 +1,151 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 10 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - ALTER DATABASE yugabyte SET yb_explicit_row_lock_skip_locked_max_read_ahead TO 50; + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id asc)) split at values ((333333), (666666)); + + cleanup: + - ALTER DATABASE yugabyte SET yb_explicit_row_lock_skip_locked_max_read_ahead TO DEFAULT; + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_without_contention + run: + - name: no_contention_queries + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_20%_contention + run: + - name: contention_queries + weight: 20 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 80 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_40%_contention + run: + - name: contention_queries + weight: 40 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 60 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_60%_contention + run: + - name: contention_queries + weight: 60 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 40 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_80%_contention + run: + - name: contention_queries + weight: 80 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; + + - name: no_contention_queries + weight: 20 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [2, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_with_100%_contention + run: + - name: contention_queries + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = 1 and id between 1 and 100000 FOR UPDATE SKIP LOCKED LIMIT 100; \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_read_ahead_50_varying_limit.yaml b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_read_ahead_50_varying_limit.yaml new file mode 100644 index 000000000..2dec3d8b8 --- /dev/null +++ b/config/yugabyte/regression_pipelines/skiplocked_workloads/yugabyte/SL_read_ahead_50_varying_limit.yaml @@ -0,0 +1,109 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 10 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 120 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - ALTER DATABASE yugabyte SET yb_explicit_row_lock_skip_locked_max_read_ahead TO 50; + - CREATE TABLE SL_jobs (id INT, status INT, priority INT, created_at TIMESTAMP, payload TEXT, primary key (id asc)) split at values ((333333), (666666)); + + cleanup: + - ALTER DATABASE yugabyte SET yb_explicit_row_lock_skip_locked_max_read_ahead TO DEFAULT; + - DROP TABLE IF EXISTS SL_jobs; + + loadRules: + - table: SL_jobs + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: status + util: CyclicSeqIntGen + params: [1, 10] + - name: priority + util: RandomInt + params: [1, 100] + - name: created_at + util: RandomTimestamp + params: [10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: SL_limit_1_without_contention + run: + - name: SL_limit_1_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 1; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_10_without_contention + run: + - name: SL_limit_10_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 10; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_100_without_contention + run: + - name: SL_limit_100_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 100; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] + + - workload: SL_limit_1000_without_contention + run: + - name: SL_limit_1000_without_contention + weight: 100 + queries: + - query: SELECT * FROM SL_jobs where status = ? and id between ? and ? FOR UPDATE SKIP LOCKED LIMIT 1000; + bindings: + - util: RandomInt + params: [1, 10] + - util: RangeDivider + params: [1000000] + referenceName: start_range + - util: ExpressionEval + params: ["start_range + 199999"] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1.yaml new file mode 100644 index 000000000..1ddc4f5cf --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_between_range_1 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_1 (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1; + + loadRules: + - table: THRPT_sec_idx_between_range_1 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_1 + run: + - name: THRPT_next_sec_idx_btwn_1 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_1 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999999] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 1" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10.yaml new file mode 100644 index 000000000..344569ef5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_between_range_10 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_10 (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10; + + loadRules: + - table: THRPT_sec_idx_between_range_10 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_10 + run: + - name: THRPT_next_sec_idx_btwn_10 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_10 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999990] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 10" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100.yaml new file mode 100644 index 000000000..9db697ef9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_between_range_100 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_100 (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100; + + loadRules: + - table: THRPT_sec_idx_between_range_100 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_100 + run: + - name: THRPT_next_sec_idx_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_100 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 100" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1000.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1000.yaml new file mode 100644 index 000000000..2c6b3bb35 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1000.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1000; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_between_range_1000 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_1000 (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1000; + + loadRules: + - table: THRPT_sec_idx_between_range_1000 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_1000 + run: + - name: THRPT_next_sec_idx_btwn_1000 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_1000 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100k.yaml new file mode 100644 index 000000000..36969b22c --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100k.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100k; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_between_range_100k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_100k (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100k; + + loadRules: + - table: THRPT_sec_idx_between_range_100k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_100k + run: + - name: THRPT_next_sec_idx_btwn_100k + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_100k WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 900000] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 100000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10k.yaml new file mode 100644 index 000000000..4c459a197 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10k.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10k; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_between_range_10k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_10k (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10k; + + loadRules: + - table: THRPT_sec_idx_between_range_10k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_10k + run: + - name: THRPT_next_sec_idx_btwn_10k + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_10k WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 990000] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 10000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_100col_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_100col_pk_btwn_1K.yaml new file mode 100644 index 000000000..cabcb8e81 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_100col_pk_btwn_1K.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_100_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_100_cols (id INT, c1 int, c2 int, payload1 text, payload2 text, payload3 text, payload4 text, payload5 text, payload6 text, payload7 text, payload8 text, payload9 text, payload10 text, payload11 text, payload12 text, payload13 text, payload14 text, payload15 text, payload16 text, payload17 text, payload18 text, payload19 text, payload20 text, payload21 text, payload22 text, payload23 text, payload24 text, payload25 text, payload26 text, payload27 text, payload28 text, payload29 text, payload30 text, payload31 text, payload32 text, payload33 text, payload34 text, payload35 text, payload36 text, payload37 text, payload38 text, payload39 text, payload40 text, payload41 text, payload42 text, payload43 text, payload44 text, payload45 text, payload46 text, payload47 text, payload48 text, payload49 text, payload50 text, payload51 text, payload52 text, payload53 text, payload54 text, payload55 text, payload56 text, payload57 text, payload58 text, payload59 text, payload60 text, payload61 text, payload62 text, payload63 text, payload64 text, payload65 text, payload66 text, payload67 text, payload68 text, payload69 text, payload70 text, payload71 text, payload72 text, payload73 text, payload74 text, payload75 text, payload76 text, payload77 text, payload78 text, payload79 text, payload80 text, payload81 text, payload82 text, payload83 text, payload84 text, payload85 text, payload86 text, payload87 text, payload88 text, payload89 text, payload90 text, payload91 text, payload92 text, payload93 text, payload94 text, payload95 text, payload96 text, payload97 text, payload98 text, payload99 text, payload100 text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_100_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_100_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 100 + util: RandomAString + params: [10, 10] + executeRules: + - workload: THRPT_next_100col_pk_btwn_1K + run: + - name: THRPT_next_100col_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_100_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_10col_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_10col_pk_btwn_1K.yaml new file mode 100644 index 000000000..45f61d9f6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_10col_pk_btwn_1K.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_10_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_10_cols (id INT, c1 int, c2 int, payload1 text, payload2 text, payload3 text, payload4 text, payload5 text, payload6 text, payload7 text, payload8 text, payload9 text, payload10 text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_10_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_10_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 10 + util: RandomAString + params: [100, 100] + executeRules: + - workload: THRPT_next_10col_pk_btwn_1K + run: + - name: THRPT_next_10col_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_10_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_1Kcol_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_1Kcol_pk_btwn_1K.yaml new file mode 100644 index 000000000..12a4cfdc6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_1Kcol_pk_btwn_1K.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_1k_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_1k_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, payload501 TEXT, payload502 TEXT, payload503 TEXT, payload504 TEXT, payload505 TEXT, payload506 TEXT, payload507 TEXT, payload508 TEXT, payload509 TEXT, payload510 TEXT, payload511 TEXT, payload512 TEXT, payload513 TEXT, payload514 TEXT, payload515 TEXT, payload516 TEXT, payload517 TEXT, payload518 TEXT, payload519 TEXT, payload520 TEXT, payload521 TEXT, payload522 TEXT, payload523 TEXT, payload524 TEXT, payload525 TEXT, payload526 TEXT, payload527 TEXT, payload528 TEXT, payload529 TEXT, payload530 TEXT, payload531 TEXT, payload532 TEXT, payload533 TEXT, payload534 TEXT, payload535 TEXT, payload536 TEXT, payload537 TEXT, payload538 TEXT, payload539 TEXT, payload540 TEXT, payload541 TEXT, payload542 TEXT, payload543 TEXT, payload544 TEXT, payload545 TEXT, payload546 TEXT, payload547 TEXT, payload548 TEXT, payload549 TEXT, payload550 TEXT, payload551 TEXT, payload552 TEXT, payload553 TEXT, payload554 TEXT, payload555 TEXT, payload556 TEXT, payload557 TEXT, payload558 TEXT, payload559 TEXT, payload560 TEXT, payload561 TEXT, payload562 TEXT, payload563 TEXT, payload564 TEXT, payload565 TEXT, payload566 TEXT, payload567 TEXT, payload568 TEXT, payload569 TEXT, payload570 TEXT, payload571 TEXT, payload572 TEXT, payload573 TEXT, payload574 TEXT, payload575 TEXT, payload576 TEXT, payload577 TEXT, payload578 TEXT, payload579 TEXT, payload580 TEXT, payload581 TEXT, payload582 TEXT, payload583 TEXT, payload584 TEXT, payload585 TEXT, payload586 TEXT, payload587 TEXT, payload588 TEXT, payload589 TEXT, payload590 TEXT, payload591 TEXT, payload592 TEXT, payload593 TEXT, payload594 TEXT, payload595 TEXT, payload596 TEXT, payload597 TEXT, payload598 TEXT, payload599 TEXT, payload600 TEXT, payload601 TEXT, payload602 TEXT, payload603 TEXT, payload604 TEXT, payload605 TEXT, payload606 TEXT, payload607 TEXT, payload608 TEXT, payload609 TEXT, payload610 TEXT, payload611 TEXT, payload612 TEXT, payload613 TEXT, payload614 TEXT, payload615 TEXT, payload616 TEXT, payload617 TEXT, payload618 TEXT, payload619 TEXT, payload620 TEXT, payload621 TEXT, payload622 TEXT, payload623 TEXT, payload624 TEXT, payload625 TEXT, payload626 TEXT, payload627 TEXT, payload628 TEXT, payload629 TEXT, payload630 TEXT, payload631 TEXT, payload632 TEXT, payload633 TEXT, payload634 TEXT, payload635 TEXT, payload636 TEXT, payload637 TEXT, payload638 TEXT, payload639 TEXT, payload640 TEXT, payload641 TEXT, payload642 TEXT, payload643 TEXT, payload644 TEXT, payload645 TEXT, payload646 TEXT, payload647 TEXT, payload648 TEXT, payload649 TEXT, payload650 TEXT, payload651 TEXT, payload652 TEXT, payload653 TEXT, payload654 TEXT, payload655 TEXT, payload656 TEXT, payload657 TEXT, payload658 TEXT, payload659 TEXT, payload660 TEXT, payload661 TEXT, payload662 TEXT, payload663 TEXT, payload664 TEXT, payload665 TEXT, payload666 TEXT, payload667 TEXT, payload668 TEXT, payload669 TEXT, payload670 TEXT, payload671 TEXT, payload672 TEXT, payload673 TEXT, payload674 TEXT, payload675 TEXT, payload676 TEXT, payload677 TEXT, payload678 TEXT, payload679 TEXT, payload680 TEXT, payload681 TEXT, payload682 TEXT, payload683 TEXT, payload684 TEXT, payload685 TEXT, payload686 TEXT, payload687 TEXT, payload688 TEXT, payload689 TEXT, payload690 TEXT, payload691 TEXT, payload692 TEXT, payload693 TEXT, payload694 TEXT, payload695 TEXT, payload696 TEXT, payload697 TEXT, payload698 TEXT, payload699 TEXT, payload700 TEXT, payload701 TEXT, payload702 TEXT, payload703 TEXT, payload704 TEXT, payload705 TEXT, payload706 TEXT, payload707 TEXT, payload708 TEXT, payload709 TEXT, payload710 TEXT, payload711 TEXT, payload712 TEXT, payload713 TEXT, payload714 TEXT, payload715 TEXT, payload716 TEXT, payload717 TEXT, payload718 TEXT, payload719 TEXT, payload720 TEXT, payload721 TEXT, payload722 TEXT, payload723 TEXT, payload724 TEXT, payload725 TEXT, payload726 TEXT, payload727 TEXT, payload728 TEXT, payload729 TEXT, payload730 TEXT, payload731 TEXT, payload732 TEXT, payload733 TEXT, payload734 TEXT, payload735 TEXT, payload736 TEXT, payload737 TEXT, payload738 TEXT, payload739 TEXT, payload740 TEXT, payload741 TEXT, payload742 TEXT, payload743 TEXT, payload744 TEXT, payload745 TEXT, payload746 TEXT, payload747 TEXT, payload748 TEXT, payload749 TEXT, payload750 TEXT, payload751 TEXT, payload752 TEXT, payload753 TEXT, payload754 TEXT, payload755 TEXT, payload756 TEXT, payload757 TEXT, payload758 TEXT, payload759 TEXT, payload760 TEXT, payload761 TEXT, payload762 TEXT, payload763 TEXT, payload764 TEXT, payload765 TEXT, payload766 TEXT, payload767 TEXT, payload768 TEXT, payload769 TEXT, payload770 TEXT, payload771 TEXT, payload772 TEXT, payload773 TEXT, payload774 TEXT, payload775 TEXT, payload776 TEXT, payload777 TEXT, payload778 TEXT, payload779 TEXT, payload780 TEXT, payload781 TEXT, payload782 TEXT, payload783 TEXT, payload784 TEXT, payload785 TEXT, payload786 TEXT, payload787 TEXT, payload788 TEXT, payload789 TEXT, payload790 TEXT, payload791 TEXT, payload792 TEXT, payload793 TEXT, payload794 TEXT, payload795 TEXT, payload796 TEXT, payload797 TEXT, payload798 TEXT, payload799 TEXT, payload800 TEXT, payload801 TEXT, payload802 TEXT, payload803 TEXT, payload804 TEXT, payload805 TEXT, payload806 TEXT, payload807 TEXT, payload808 TEXT, payload809 TEXT, payload810 TEXT, payload811 TEXT, payload812 TEXT, payload813 TEXT, payload814 TEXT, payload815 TEXT, payload816 TEXT, payload817 TEXT, payload818 TEXT, payload819 TEXT, payload820 TEXT, payload821 TEXT, payload822 TEXT, payload823 TEXT, payload824 TEXT, payload825 TEXT, payload826 TEXT, payload827 TEXT, payload828 TEXT, payload829 TEXT, payload830 TEXT, payload831 TEXT, payload832 TEXT, payload833 TEXT, payload834 TEXT, payload835 TEXT, payload836 TEXT, payload837 TEXT, payload838 TEXT, payload839 TEXT, payload840 TEXT, payload841 TEXT, payload842 TEXT, payload843 TEXT, payload844 TEXT, payload845 TEXT, payload846 TEXT, payload847 TEXT, payload848 TEXT, payload849 TEXT, payload850 TEXT, payload851 TEXT, payload852 TEXT, payload853 TEXT, payload854 TEXT, payload855 TEXT, payload856 TEXT, payload857 TEXT, payload858 TEXT, payload859 TEXT, payload860 TEXT, payload861 TEXT, payload862 TEXT, payload863 TEXT, payload864 TEXT, payload865 TEXT, payload866 TEXT, payload867 TEXT, payload868 TEXT, payload869 TEXT, payload870 TEXT, payload871 TEXT, payload872 TEXT, payload873 TEXT, payload874 TEXT, payload875 TEXT, payload876 TEXT, payload877 TEXT, payload878 TEXT, payload879 TEXT, payload880 TEXT, payload881 TEXT, payload882 TEXT, payload883 TEXT, payload884 TEXT, payload885 TEXT, payload886 TEXT, payload887 TEXT, payload888 TEXT, payload889 TEXT, payload890 TEXT, payload891 TEXT, payload892 TEXT, payload893 TEXT, payload894 TEXT, payload895 TEXT, payload896 TEXT, payload897 TEXT, payload898 TEXT, payload899 TEXT, payload900 TEXT, payload901 TEXT, payload902 TEXT, payload903 TEXT, payload904 TEXT, payload905 TEXT, payload906 TEXT, payload907 TEXT, payload908 TEXT, payload909 TEXT, payload910 TEXT, payload911 TEXT, payload912 TEXT, payload913 TEXT, payload914 TEXT, payload915 TEXT, payload916 TEXT, payload917 TEXT, payload918 TEXT, payload919 TEXT, payload920 TEXT, payload921 TEXT, payload922 TEXT, payload923 TEXT, payload924 TEXT, payload925 TEXT, payload926 TEXT, payload927 TEXT, payload928 TEXT, payload929 TEXT, payload930 TEXT, payload931 TEXT, payload932 TEXT, payload933 TEXT, payload934 TEXT, payload935 TEXT, payload936 TEXT, payload937 TEXT, payload938 TEXT, payload939 TEXT, payload940 TEXT, payload941 TEXT, payload942 TEXT, payload943 TEXT, payload944 TEXT, payload945 TEXT, payload946 TEXT, payload947 TEXT, payload948 TEXT, payload949 TEXT, payload950 TEXT, payload951 TEXT, payload952 TEXT, payload953 TEXT, payload954 TEXT, payload955 TEXT, payload956 TEXT, payload957 TEXT, payload958 TEXT, payload959 TEXT, payload960 TEXT, payload961 TEXT, payload962 TEXT, payload963 TEXT, payload964 TEXT, payload965 TEXT, payload966 TEXT, payload967 TEXT, payload968 TEXT, payload969 TEXT, payload970 TEXT, payload971 TEXT, payload972 TEXT, payload973 TEXT, payload974 TEXT, payload975 TEXT, payload976 TEXT, payload977 TEXT, payload978 TEXT, payload979 TEXT, payload980 TEXT, payload981 TEXT, payload982 TEXT, payload983 TEXT, payload984 TEXT, payload985 TEXT, payload986 TEXT, payload987 TEXT, payload988 TEXT, payload989 TEXT, payload990 TEXT, payload991 TEXT, payload992 TEXT, payload993 TEXT, payload994 TEXT, payload995 TEXT, payload996 TEXT, payload997 TEXT, payload998 TEXT, payload999 TEXT, payload1000 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_1k_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_1k_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 1000 + util: RandomAString + params: [1, 1] + executeRules: + - workload: THRPT_next_1Kcol_pk_btwn_1K + run: + - name: THRPT_next_1Kcol_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_1k_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_500col_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_500col_pk_btwn_1K.yaml new file mode 100644 index 000000000..6e3861cdb --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_cols/THRPT_next_500col_pk_btwn_1K.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_500_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_500_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_500_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_500_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 500 + util: RandomAString + params: [2, 2] + executeRules: + - workload: THRPT_next_500col_pk_btwn_1K + run: + - name: THRPT_next_500col_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_500_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_1.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_1.yaml new file mode 100644 index 000000000..dbe8a4b21 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_1.yaml @@ -0,0 +1,68 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_1; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_range_1 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_1; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_range_1 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_1 + run: + - name: THRPT_next_pk_btwn_1 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_1 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999999] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_10.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_10.yaml new file mode 100644 index 000000000..759ca69b7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_10.yaml @@ -0,0 +1,68 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_10; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_range_10 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_10; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_range_10 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_10 + run: + - name: THRPT_next_pk_btwn_10 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_10 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999990] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 10" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_100.yaml new file mode 100644 index 000000000..fa95b8db0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_100.yaml @@ -0,0 +1,68 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_100; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_range_100 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_100; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_range_100 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_100 + run: + - name: THRPT_next_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_100 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_1000.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_1000.yaml new file mode 100644 index 000000000..40be9786f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_1000.yaml @@ -0,0 +1,69 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + # Row-shape scan experiment: 100 TEXT columns, ~10 chars each (~1024 B row), 10000000 rows. Same column layout as seq twin (lookup_key unindexed, unused here); idx workload: WHERE id = ? (PK). Scan mode: idx. + create: + - DROP TABLE IF EXISTS THRPT_between_range_1000; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_range_1000 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_1000; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_range_1000 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_1000 + run: + - name: THRPT_next_pk_btwn_1000 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_1000 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_100k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_100k.yaml new file mode 100644 index 000000000..c2221d146 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_100k.yaml @@ -0,0 +1,68 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_100k; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_range_100k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_100k; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_range_100k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_100k + run: + - name: THRPT_next_pk_btwn_100k + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_100k WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 900000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_10k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_10k.yaml new file mode 100644 index 000000000..89c9e79b9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_range/THRPT_next_pk_btwn_10k.yaml @@ -0,0 +1,68 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_10k; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_between_range_10k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_10k; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_between_range_10k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_10k + run: + - name: THRPT_next_pk_btwn_10k + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_10k WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 990000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 10000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_100KB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_100KB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..35ad0aeee --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_100KB_row_pk_btwn_100.yaml @@ -0,0 +1,62 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_100kb_row; + - CREATE TABLE THRPT_between_100kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_100kb_row; + + loadRules: + - table: THRPT_between_100kb_row + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: payload + util: RandomAString + params: [102400, 102400] + executeRules: + - workload: THRPT_next_1col_100KB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_100KB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_100kb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 99900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" + diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_10KB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_10KB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..2a744dbac --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_10KB_row_pk_btwn_100.yaml @@ -0,0 +1,61 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_10kb_row; + - CREATE TABLE THRPT_between_10kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_10kb_row; + + loadRules: + - table: THRPT_between_10kb_row + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [10240, 10240] + executeRules: + - workload: THRPT_next_1col_10KB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_10KB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_10kb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_1KB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_1KB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..16f708842 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_1KB_row_pk_btwn_100.yaml @@ -0,0 +1,61 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_1kb_row; + - CREATE TABLE THRPT_between_1kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_1kb_row; + + loadRules: + - table: THRPT_between_1kb_row + rows: 10000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_1col_1KB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_1KB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_1kb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 9999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_1MB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_1MB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..197f304b4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_varying_row_size/THRPT_next_1col_1MB_row_pk_btwn_100.yaml @@ -0,0 +1,61 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_1mb_row; + - CREATE TABLE THRPT_between_1mb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_1mb_row; + + loadRules: + - table: THRPT_between_1mb_row + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: payload + util: RandomAString + params: [1048576, 1048576] + executeRules: + - workload: THRPT_next_1col_1MB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_1MB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_1mb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 9900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_100KB_row_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_100KB_row_btwn_100.yaml new file mode 100644 index 000000000..32f1e38c3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_100KB_row_btwn_100.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_between_100kb; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_wide_between_100kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_between_100kb; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_wide_between_100kb + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: c + count: 100 + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_100col_100KB_row_btwn_100 + run: + - name: THRPT_next_100col_100KB_row_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_between_100kb WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 99900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_10KB_row_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_10KB_row_btwn_100.yaml new file mode 100644 index 000000000..5cf79d3e0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_10KB_row_btwn_100.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_between_10kb; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_wide_between_10kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_between_10kb; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_wide_between_10kb + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c + count: 100 + util: RandomAString + params: [102, 102] + executeRules: + - workload: THRPT_next_100col_10KB_row_btwn_100 + run: + - name: THRPT_next_100col_10KB_row_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_between_10kb WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_1MB_row_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_1MB_row_btwn_100.yaml new file mode 100644 index 000000000..9de8e2515 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/postgres/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_1MB_row_btwn_100.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_between_1mb; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_wide_between_1mb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_between_1mb; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + + loadRules: + - table: THRPT_wide_between_1mb + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: c + count: 100 + util: RandomAString + params: [10485, 10485] + executeRules: + - workload: THRPT_next_100col_1MB_row_btwn_100 + run: + - name: THRPT_next_100col_1MB_row_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_between_1mb WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 9900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1.yaml new file mode 100644 index 000000000..ec9a5ca9e --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1; + - CREATE TABLE THRPT_sec_idx_between_range_1 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_1 (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1; + + loadRules: + - table: THRPT_sec_idx_between_range_1 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_1 + run: + - name: THRPT_next_sec_idx_btwn_1 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_1 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999999] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 1" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10.yaml new file mode 100644 index 000000000..d2ada50b9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10; + - CREATE TABLE THRPT_sec_idx_between_range_10 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_10 (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10; + + loadRules: + - table: THRPT_sec_idx_between_range_10 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_10 + run: + - name: THRPT_next_sec_idx_btwn_10 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_10 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999990] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 10" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100.yaml new file mode 100644 index 000000000..b73eaece2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100; + - CREATE TABLE THRPT_sec_idx_between_range_100 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_100 (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100; + + loadRules: + - table: THRPT_sec_idx_between_range_100 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_100 + run: + - name: THRPT_next_sec_idx_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_100 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1000.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1000.yaml new file mode 100644 index 000000000..9aa341586 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_1000.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1000; + - CREATE TABLE THRPT_sec_idx_between_range_1000 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_1000 (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_1000; + + loadRules: + - table: THRPT_sec_idx_between_range_1000 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_1000 + run: + - name: THRPT_next_sec_idx_btwn_1000 + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_1000 WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 1000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100k.yaml new file mode 100644 index 000000000..2ba7d96f5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_100k.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100k; + - CREATE TABLE THRPT_sec_idx_between_range_100k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_100k (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_100k; + + loadRules: + - table: THRPT_sec_idx_between_range_100k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_100k + run: + - name: THRPT_next_sec_idx_btwn_100k + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_100k WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 900000] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 100000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10k.yaml new file mode 100644 index 000000000..c52a8fdea --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_sec_idx_varying_range/THRPT_next_sec_idx_btwn_10k.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10k; + - CREATE TABLE THRPT_sec_idx_between_range_10k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_between_range_10k (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_between_range_10k; + + loadRules: + - table: THRPT_sec_idx_between_range_10k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_sec_idx_btwn_10k + run: + - name: THRPT_next_sec_idx_btwn_10k + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_between_range_10k WHERE c2 between ? and ?; + bindings: + - util: RandomNumber + params: [1, 990000] + referenceName: c2 + - util: ExpressionEval + params: + - "c2 + 10000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_100col_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_100col_pk_btwn_1K.yaml new file mode 100644 index 000000000..19c642e2f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_100col_pk_btwn_1K.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_100_cols; + - CREATE TABLE THRPT_between_100_cols (id INT, c1 int, c2 int, payload1 text, payload2 text, payload3 text, payload4 text, payload5 text, payload6 text, payload7 text, payload8 text, payload9 text, payload10 text, payload11 text, payload12 text, payload13 text, payload14 text, payload15 text, payload16 text, payload17 text, payload18 text, payload19 text, payload20 text, payload21 text, payload22 text, payload23 text, payload24 text, payload25 text, payload26 text, payload27 text, payload28 text, payload29 text, payload30 text, payload31 text, payload32 text, payload33 text, payload34 text, payload35 text, payload36 text, payload37 text, payload38 text, payload39 text, payload40 text, payload41 text, payload42 text, payload43 text, payload44 text, payload45 text, payload46 text, payload47 text, payload48 text, payload49 text, payload50 text, payload51 text, payload52 text, payload53 text, payload54 text, payload55 text, payload56 text, payload57 text, payload58 text, payload59 text, payload60 text, payload61 text, payload62 text, payload63 text, payload64 text, payload65 text, payload66 text, payload67 text, payload68 text, payload69 text, payload70 text, payload71 text, payload72 text, payload73 text, payload74 text, payload75 text, payload76 text, payload77 text, payload78 text, payload79 text, payload80 text, payload81 text, payload82 text, payload83 text, payload84 text, payload85 text, payload86 text, payload87 text, payload88 text, payload89 text, payload90 text, payload91 text, payload92 text, payload93 text, payload94 text, payload95 text, payload96 text, payload97 text, payload98 text, payload99 text, payload100 text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_100_cols; + + loadRules: + - table: THRPT_between_100_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 100 + util: RandomAString + params: [10, 10] + executeRules: + - workload: THRPT_next_100col_pk_btwn_1K + run: + - name: THRPT_next_100col_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_100_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_10col_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_10col_pk_btwn_1K.yaml new file mode 100644 index 000000000..1a22ce487 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_10col_pk_btwn_1K.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_10_cols; + - CREATE TABLE THRPT_between_10_cols (id INT, c1 int, c2 int, payload1 text, payload2 text, payload3 text, payload4 text, payload5 text, payload6 text, payload7 text, payload8 text, payload9 text, payload10 text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_10_cols; + + loadRules: + - table: THRPT_between_10_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 10 + util: RandomAString + params: [100, 100] + executeRules: + - workload: THRPT_next_10col_pk_btwn_1K + run: + - name: THRPT_next_10col_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_10_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_1Kcol_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_1Kcol_pk_btwn_1K.yaml new file mode 100644 index 000000000..8f802a436 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_1Kcol_pk_btwn_1K.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_1k_cols; + - CREATE TABLE THRPT_between_1k_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, payload501 TEXT, payload502 TEXT, payload503 TEXT, payload504 TEXT, payload505 TEXT, payload506 TEXT, payload507 TEXT, payload508 TEXT, payload509 TEXT, payload510 TEXT, payload511 TEXT, payload512 TEXT, payload513 TEXT, payload514 TEXT, payload515 TEXT, payload516 TEXT, payload517 TEXT, payload518 TEXT, payload519 TEXT, payload520 TEXT, payload521 TEXT, payload522 TEXT, payload523 TEXT, payload524 TEXT, payload525 TEXT, payload526 TEXT, payload527 TEXT, payload528 TEXT, payload529 TEXT, payload530 TEXT, payload531 TEXT, payload532 TEXT, payload533 TEXT, payload534 TEXT, payload535 TEXT, payload536 TEXT, payload537 TEXT, payload538 TEXT, payload539 TEXT, payload540 TEXT, payload541 TEXT, payload542 TEXT, payload543 TEXT, payload544 TEXT, payload545 TEXT, payload546 TEXT, payload547 TEXT, payload548 TEXT, payload549 TEXT, payload550 TEXT, payload551 TEXT, payload552 TEXT, payload553 TEXT, payload554 TEXT, payload555 TEXT, payload556 TEXT, payload557 TEXT, payload558 TEXT, payload559 TEXT, payload560 TEXT, payload561 TEXT, payload562 TEXT, payload563 TEXT, payload564 TEXT, payload565 TEXT, payload566 TEXT, payload567 TEXT, payload568 TEXT, payload569 TEXT, payload570 TEXT, payload571 TEXT, payload572 TEXT, payload573 TEXT, payload574 TEXT, payload575 TEXT, payload576 TEXT, payload577 TEXT, payload578 TEXT, payload579 TEXT, payload580 TEXT, payload581 TEXT, payload582 TEXT, payload583 TEXT, payload584 TEXT, payload585 TEXT, payload586 TEXT, payload587 TEXT, payload588 TEXT, payload589 TEXT, payload590 TEXT, payload591 TEXT, payload592 TEXT, payload593 TEXT, payload594 TEXT, payload595 TEXT, payload596 TEXT, payload597 TEXT, payload598 TEXT, payload599 TEXT, payload600 TEXT, payload601 TEXT, payload602 TEXT, payload603 TEXT, payload604 TEXT, payload605 TEXT, payload606 TEXT, payload607 TEXT, payload608 TEXT, payload609 TEXT, payload610 TEXT, payload611 TEXT, payload612 TEXT, payload613 TEXT, payload614 TEXT, payload615 TEXT, payload616 TEXT, payload617 TEXT, payload618 TEXT, payload619 TEXT, payload620 TEXT, payload621 TEXT, payload622 TEXT, payload623 TEXT, payload624 TEXT, payload625 TEXT, payload626 TEXT, payload627 TEXT, payload628 TEXT, payload629 TEXT, payload630 TEXT, payload631 TEXT, payload632 TEXT, payload633 TEXT, payload634 TEXT, payload635 TEXT, payload636 TEXT, payload637 TEXT, payload638 TEXT, payload639 TEXT, payload640 TEXT, payload641 TEXT, payload642 TEXT, payload643 TEXT, payload644 TEXT, payload645 TEXT, payload646 TEXT, payload647 TEXT, payload648 TEXT, payload649 TEXT, payload650 TEXT, payload651 TEXT, payload652 TEXT, payload653 TEXT, payload654 TEXT, payload655 TEXT, payload656 TEXT, payload657 TEXT, payload658 TEXT, payload659 TEXT, payload660 TEXT, payload661 TEXT, payload662 TEXT, payload663 TEXT, payload664 TEXT, payload665 TEXT, payload666 TEXT, payload667 TEXT, payload668 TEXT, payload669 TEXT, payload670 TEXT, payload671 TEXT, payload672 TEXT, payload673 TEXT, payload674 TEXT, payload675 TEXT, payload676 TEXT, payload677 TEXT, payload678 TEXT, payload679 TEXT, payload680 TEXT, payload681 TEXT, payload682 TEXT, payload683 TEXT, payload684 TEXT, payload685 TEXT, payload686 TEXT, payload687 TEXT, payload688 TEXT, payload689 TEXT, payload690 TEXT, payload691 TEXT, payload692 TEXT, payload693 TEXT, payload694 TEXT, payload695 TEXT, payload696 TEXT, payload697 TEXT, payload698 TEXT, payload699 TEXT, payload700 TEXT, payload701 TEXT, payload702 TEXT, payload703 TEXT, payload704 TEXT, payload705 TEXT, payload706 TEXT, payload707 TEXT, payload708 TEXT, payload709 TEXT, payload710 TEXT, payload711 TEXT, payload712 TEXT, payload713 TEXT, payload714 TEXT, payload715 TEXT, payload716 TEXT, payload717 TEXT, payload718 TEXT, payload719 TEXT, payload720 TEXT, payload721 TEXT, payload722 TEXT, payload723 TEXT, payload724 TEXT, payload725 TEXT, payload726 TEXT, payload727 TEXT, payload728 TEXT, payload729 TEXT, payload730 TEXT, payload731 TEXT, payload732 TEXT, payload733 TEXT, payload734 TEXT, payload735 TEXT, payload736 TEXT, payload737 TEXT, payload738 TEXT, payload739 TEXT, payload740 TEXT, payload741 TEXT, payload742 TEXT, payload743 TEXT, payload744 TEXT, payload745 TEXT, payload746 TEXT, payload747 TEXT, payload748 TEXT, payload749 TEXT, payload750 TEXT, payload751 TEXT, payload752 TEXT, payload753 TEXT, payload754 TEXT, payload755 TEXT, payload756 TEXT, payload757 TEXT, payload758 TEXT, payload759 TEXT, payload760 TEXT, payload761 TEXT, payload762 TEXT, payload763 TEXT, payload764 TEXT, payload765 TEXT, payload766 TEXT, payload767 TEXT, payload768 TEXT, payload769 TEXT, payload770 TEXT, payload771 TEXT, payload772 TEXT, payload773 TEXT, payload774 TEXT, payload775 TEXT, payload776 TEXT, payload777 TEXT, payload778 TEXT, payload779 TEXT, payload780 TEXT, payload781 TEXT, payload782 TEXT, payload783 TEXT, payload784 TEXT, payload785 TEXT, payload786 TEXT, payload787 TEXT, payload788 TEXT, payload789 TEXT, payload790 TEXT, payload791 TEXT, payload792 TEXT, payload793 TEXT, payload794 TEXT, payload795 TEXT, payload796 TEXT, payload797 TEXT, payload798 TEXT, payload799 TEXT, payload800 TEXT, payload801 TEXT, payload802 TEXT, payload803 TEXT, payload804 TEXT, payload805 TEXT, payload806 TEXT, payload807 TEXT, payload808 TEXT, payload809 TEXT, payload810 TEXT, payload811 TEXT, payload812 TEXT, payload813 TEXT, payload814 TEXT, payload815 TEXT, payload816 TEXT, payload817 TEXT, payload818 TEXT, payload819 TEXT, payload820 TEXT, payload821 TEXT, payload822 TEXT, payload823 TEXT, payload824 TEXT, payload825 TEXT, payload826 TEXT, payload827 TEXT, payload828 TEXT, payload829 TEXT, payload830 TEXT, payload831 TEXT, payload832 TEXT, payload833 TEXT, payload834 TEXT, payload835 TEXT, payload836 TEXT, payload837 TEXT, payload838 TEXT, payload839 TEXT, payload840 TEXT, payload841 TEXT, payload842 TEXT, payload843 TEXT, payload844 TEXT, payload845 TEXT, payload846 TEXT, payload847 TEXT, payload848 TEXT, payload849 TEXT, payload850 TEXT, payload851 TEXT, payload852 TEXT, payload853 TEXT, payload854 TEXT, payload855 TEXT, payload856 TEXT, payload857 TEXT, payload858 TEXT, payload859 TEXT, payload860 TEXT, payload861 TEXT, payload862 TEXT, payload863 TEXT, payload864 TEXT, payload865 TEXT, payload866 TEXT, payload867 TEXT, payload868 TEXT, payload869 TEXT, payload870 TEXT, payload871 TEXT, payload872 TEXT, payload873 TEXT, payload874 TEXT, payload875 TEXT, payload876 TEXT, payload877 TEXT, payload878 TEXT, payload879 TEXT, payload880 TEXT, payload881 TEXT, payload882 TEXT, payload883 TEXT, payload884 TEXT, payload885 TEXT, payload886 TEXT, payload887 TEXT, payload888 TEXT, payload889 TEXT, payload890 TEXT, payload891 TEXT, payload892 TEXT, payload893 TEXT, payload894 TEXT, payload895 TEXT, payload896 TEXT, payload897 TEXT, payload898 TEXT, payload899 TEXT, payload900 TEXT, payload901 TEXT, payload902 TEXT, payload903 TEXT, payload904 TEXT, payload905 TEXT, payload906 TEXT, payload907 TEXT, payload908 TEXT, payload909 TEXT, payload910 TEXT, payload911 TEXT, payload912 TEXT, payload913 TEXT, payload914 TEXT, payload915 TEXT, payload916 TEXT, payload917 TEXT, payload918 TEXT, payload919 TEXT, payload920 TEXT, payload921 TEXT, payload922 TEXT, payload923 TEXT, payload924 TEXT, payload925 TEXT, payload926 TEXT, payload927 TEXT, payload928 TEXT, payload929 TEXT, payload930 TEXT, payload931 TEXT, payload932 TEXT, payload933 TEXT, payload934 TEXT, payload935 TEXT, payload936 TEXT, payload937 TEXT, payload938 TEXT, payload939 TEXT, payload940 TEXT, payload941 TEXT, payload942 TEXT, payload943 TEXT, payload944 TEXT, payload945 TEXT, payload946 TEXT, payload947 TEXT, payload948 TEXT, payload949 TEXT, payload950 TEXT, payload951 TEXT, payload952 TEXT, payload953 TEXT, payload954 TEXT, payload955 TEXT, payload956 TEXT, payload957 TEXT, payload958 TEXT, payload959 TEXT, payload960 TEXT, payload961 TEXT, payload962 TEXT, payload963 TEXT, payload964 TEXT, payload965 TEXT, payload966 TEXT, payload967 TEXT, payload968 TEXT, payload969 TEXT, payload970 TEXT, payload971 TEXT, payload972 TEXT, payload973 TEXT, payload974 TEXT, payload975 TEXT, payload976 TEXT, payload977 TEXT, payload978 TEXT, payload979 TEXT, payload980 TEXT, payload981 TEXT, payload982 TEXT, payload983 TEXT, payload984 TEXT, payload985 TEXT, payload986 TEXT, payload987 TEXT, payload988 TEXT, payload989 TEXT, payload990 TEXT, payload991 TEXT, payload992 TEXT, payload993 TEXT, payload994 TEXT, payload995 TEXT, payload996 TEXT, payload997 TEXT, payload998 TEXT, payload999 TEXT, payload1000 TEXT, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_1k_cols; + + loadRules: + - table: THRPT_between_1k_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 1000 + util: RandomAString + params: [1, 1] + executeRules: + - workload: THRPT_next_1Kcol_pk_btwn_1K + run: + - name: THRPT_next_1Kcol_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_1k_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_500col_pk_btwn_1K.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_500col_pk_btwn_1K.yaml new file mode 100644 index 000000000..5666fcf36 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_cols/THRPT_next_500col_pk_btwn_1K.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_500_cols; + - CREATE TABLE THRPT_between_500_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_500_cols; + + loadRules: + - table: THRPT_between_500_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 500 + util: RandomAString + params: [2, 2] + executeRules: + - workload: THRPT_next_500col_pk_btwn_1K + run: + - name: THRPT_next_500col_pk_btwn_1K + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_500_cols WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_1.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_1.yaml new file mode 100644 index 000000000..41797880f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_1.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_1; + - CREATE TABLE THRPT_between_range_1 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_1; + + loadRules: + - table: THRPT_between_range_1 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_1 + run: + - name: THRPT_next_pk_btwn_1 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_1 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999999] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_10.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_10.yaml new file mode 100644 index 000000000..73005ff4a --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_10.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_10; + - CREATE TABLE THRPT_between_range_10 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_10; + + loadRules: + - table: THRPT_between_range_10 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_10 + run: + - name: THRPT_next_pk_btwn_10 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_10 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999990] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 10" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_100.yaml new file mode 100644 index 000000000..31c43d0c0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_100.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_100; + - CREATE TABLE THRPT_between_range_100 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_100; + + loadRules: + - table: THRPT_between_range_100 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_100 + run: + - name: THRPT_next_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_100 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_1000.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_1000.yaml new file mode 100644 index 000000000..253b25f75 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_1000.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_1000; + - CREATE TABLE THRPT_between_range_1000 (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_1000; + + loadRules: + - table: THRPT_between_range_1000 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_1000 + run: + - name: THRPT_next_pk_btwn_1000 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_1000 WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 1000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_100k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_100k.yaml new file mode 100644 index 000000000..b98eb3b80 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_100k.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_100k; + - CREATE TABLE THRPT_between_range_100k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_100k; + + loadRules: + - table: THRPT_between_range_100k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_100k + run: + - name: THRPT_next_pk_btwn_100k + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_100k WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 900000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_10k.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_10k.yaml new file mode 100644 index 000000000..f0faa03a4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_range/THRPT_next_pk_btwn_10k.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_range_10k; + - CREATE TABLE THRPT_between_range_10k (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_range_10k; + + loadRules: + - table: THRPT_between_range_10k + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_pk_btwn_10k + run: + - name: THRPT_next_pk_btwn_10k + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_range_10k WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 990000] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 10000" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_100KB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_100KB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..c1d0f1971 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_100KB_row_pk_btwn_100.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_100kb_row; + - CREATE TABLE THRPT_between_100kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((33333), (66666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_100kb_row; + + loadRules: + - table: THRPT_between_100kb_row + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: payload + util: RandomAString + params: [102400, 102400] + executeRules: + - workload: THRPT_next_1col_100KB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_100KB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_100kb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 99900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" + diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_10KB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_10KB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..07b77d9d1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_10KB_row_pk_btwn_100.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_10kb_row; + - CREATE TABLE THRPT_between_10kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_10kb_row; + + loadRules: + - table: THRPT_between_10kb_row + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [10240, 10240] + executeRules: + - workload: THRPT_next_1col_10KB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_10KB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_10kb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_1KB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_1KB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..06254ed77 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_1KB_row_pk_btwn_100.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_1kb_row; + - CREATE TABLE THRPT_between_1kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((3333333), (6666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_1kb_row; + + loadRules: + - table: THRPT_between_1kb_row + rows: 10000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_1col_1KB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_1KB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_1kb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 9999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_1MB_row_pk_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_1MB_row_pk_btwn_100.yaml new file mode 100644 index 000000000..1e566e508 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_varying_row_size/THRPT_next_1col_1MB_row_pk_btwn_100.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_between_1mb_row; + - CREATE TABLE THRPT_between_1mb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((3333), (6666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_between_1mb_row; + + loadRules: + - table: THRPT_between_1mb_row + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: payload + util: RandomAString + params: [1048576, 1048576] + executeRules: + - workload: THRPT_next_1col_1MB_row_pk_btwn_100 + run: + - name: THRPT_next_1col_1MB_row_pk_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_between_1mb_row WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 9900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_100KB_row_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_100KB_row_btwn_100.yaml new file mode 100644 index 000000000..bc44fa786 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_100KB_row_btwn_100.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_between_100kb; + - CREATE TABLE THRPT_wide_between_100kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((33333), (66666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_between_100kb; + + loadRules: + - table: THRPT_wide_between_100kb + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: c + count: 100 + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_next_100col_100KB_row_btwn_100 + run: + - name: THRPT_next_100col_100KB_row_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_between_100kb WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 99900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_10KB_row_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_10KB_row_btwn_100.yaml new file mode 100644 index 000000000..657ac1d1b --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_10KB_row_btwn_100.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_between_10kb; + - CREATE TABLE THRPT_wide_between_10kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_between_10kb; + + loadRules: + - table: THRPT_wide_between_10kb + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c + count: 100 + util: RandomAString + params: [102, 102] + executeRules: + - workload: THRPT_next_100col_10KB_row_btwn_100 + run: + - name: THRPT_next_100col_10KB_row_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_between_10kb WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 999900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_1MB_row_btwn_100.yaml b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_1MB_row_btwn_100.yaml new file mode 100644 index 000000000..e4302a673 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_next_workloads/yugabyte/THRPT_next_wide_table_varying_row_size/THRPT_next_100col_1MB_row_btwn_100.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_between_1mb; + - CREATE TABLE THRPT_wide_between_1mb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id asc)) split at values ((3333), (6666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_between_1mb; + + loadRules: + - table: THRPT_wide_between_1mb + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: c + count: 100 + util: RandomAString + params: [10485, 10485] + executeRules: + - workload: THRPT_next_100col_1MB_row_btwn_100 + run: + - name: THRPT_next_100col_1MB_row_btwn_100 + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_between_1mb WHERE id between ? and ?; + bindings: + - util: RandomNumber + params: [1, 9900] + referenceName: id1 + - util: ExpressionEval + params: + - "id1 + 100" diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_100_values.yaml new file mode 100644 index 000000000..66ca04567 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_100_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_100_options; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_in_100_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_100_options (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_in_100_options; + + loadRules: + - table: THRPT_sec_idx_in_100_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_100_values + run: + - name: THRPT_seek_sec_idx_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_100_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10_values.yaml new file mode 100644 index 000000000..8fb500fe5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10_options; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_in_10_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_10_options (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10_options; + + loadRules: + - table: THRPT_sec_idx_in_10_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_10_values + run: + - name: THRPT_seek_sec_idx_in_10_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_10_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10 + params: [1, 1000000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10k_values.yaml new file mode 100644 index 000000000..07df948b3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10k_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10k_options; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_in_10k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_10k_options (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10k_options; + + loadRules: + - table: THRPT_sec_idx_in_10k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_10k_values + run: + - name: THRPT_seek_sec_idx_in_10k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_10k_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1_values.yaml new file mode 100644 index 000000000..317307919 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1_option; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_in_1_option (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_1_option (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1_option; + + loadRules: + - table: THRPT_sec_idx_in_1_option + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_1_values + run: + - name: THRPT_seek_sec_idx_in_1_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_1_option WHERE c2 IN (?); + bindings: + - util: RandomNumber + count: 1 + params: [1, 1000000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1k_values.yaml new file mode 100644 index 000000000..f3426ee11 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1k_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1k_options; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_sec_idx_in_1k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_1k_options (c2); + + cleanup: + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1k_options; + + loadRules: + - table: THRPT_sec_idx_in_1k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_1k_values + run: + - name: THRPT_seek_sec_idx_in_1k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_1k_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_100_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_100_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..a7a682690 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_100_col_pk_in_1K_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_100_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_100_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_100_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_100_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 100 + util: RandomAString + params: [10, 10] + executeRules: + - workload: THRPT_seek_100_col_pk_in_1K_values + run: + - name: THRPT_seek_100_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_100_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_10_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_10_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..4cb8dde20 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_10_col_pk_in_1K_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_10_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_10_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 10 + util: RandomAString + params: [100, 100] + executeRules: + - workload: THRPT_seek_10_col_pk_in_1K_values + run: + - name: THRPT_seek_10_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_1K_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_1K_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..069ea65c7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_1K_col_pk_in_1K_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1k_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_1k_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, payload501 TEXT, payload502 TEXT, payload503 TEXT, payload504 TEXT, payload505 TEXT, payload506 TEXT, payload507 TEXT, payload508 TEXT, payload509 TEXT, payload510 TEXT, payload511 TEXT, payload512 TEXT, payload513 TEXT, payload514 TEXT, payload515 TEXT, payload516 TEXT, payload517 TEXT, payload518 TEXT, payload519 TEXT, payload520 TEXT, payload521 TEXT, payload522 TEXT, payload523 TEXT, payload524 TEXT, payload525 TEXT, payload526 TEXT, payload527 TEXT, payload528 TEXT, payload529 TEXT, payload530 TEXT, payload531 TEXT, payload532 TEXT, payload533 TEXT, payload534 TEXT, payload535 TEXT, payload536 TEXT, payload537 TEXT, payload538 TEXT, payload539 TEXT, payload540 TEXT, payload541 TEXT, payload542 TEXT, payload543 TEXT, payload544 TEXT, payload545 TEXT, payload546 TEXT, payload547 TEXT, payload548 TEXT, payload549 TEXT, payload550 TEXT, payload551 TEXT, payload552 TEXT, payload553 TEXT, payload554 TEXT, payload555 TEXT, payload556 TEXT, payload557 TEXT, payload558 TEXT, payload559 TEXT, payload560 TEXT, payload561 TEXT, payload562 TEXT, payload563 TEXT, payload564 TEXT, payload565 TEXT, payload566 TEXT, payload567 TEXT, payload568 TEXT, payload569 TEXT, payload570 TEXT, payload571 TEXT, payload572 TEXT, payload573 TEXT, payload574 TEXT, payload575 TEXT, payload576 TEXT, payload577 TEXT, payload578 TEXT, payload579 TEXT, payload580 TEXT, payload581 TEXT, payload582 TEXT, payload583 TEXT, payload584 TEXT, payload585 TEXT, payload586 TEXT, payload587 TEXT, payload588 TEXT, payload589 TEXT, payload590 TEXT, payload591 TEXT, payload592 TEXT, payload593 TEXT, payload594 TEXT, payload595 TEXT, payload596 TEXT, payload597 TEXT, payload598 TEXT, payload599 TEXT, payload600 TEXT, payload601 TEXT, payload602 TEXT, payload603 TEXT, payload604 TEXT, payload605 TEXT, payload606 TEXT, payload607 TEXT, payload608 TEXT, payload609 TEXT, payload610 TEXT, payload611 TEXT, payload612 TEXT, payload613 TEXT, payload614 TEXT, payload615 TEXT, payload616 TEXT, payload617 TEXT, payload618 TEXT, payload619 TEXT, payload620 TEXT, payload621 TEXT, payload622 TEXT, payload623 TEXT, payload624 TEXT, payload625 TEXT, payload626 TEXT, payload627 TEXT, payload628 TEXT, payload629 TEXT, payload630 TEXT, payload631 TEXT, payload632 TEXT, payload633 TEXT, payload634 TEXT, payload635 TEXT, payload636 TEXT, payload637 TEXT, payload638 TEXT, payload639 TEXT, payload640 TEXT, payload641 TEXT, payload642 TEXT, payload643 TEXT, payload644 TEXT, payload645 TEXT, payload646 TEXT, payload647 TEXT, payload648 TEXT, payload649 TEXT, payload650 TEXT, payload651 TEXT, payload652 TEXT, payload653 TEXT, payload654 TEXT, payload655 TEXT, payload656 TEXT, payload657 TEXT, payload658 TEXT, payload659 TEXT, payload660 TEXT, payload661 TEXT, payload662 TEXT, payload663 TEXT, payload664 TEXT, payload665 TEXT, payload666 TEXT, payload667 TEXT, payload668 TEXT, payload669 TEXT, payload670 TEXT, payload671 TEXT, payload672 TEXT, payload673 TEXT, payload674 TEXT, payload675 TEXT, payload676 TEXT, payload677 TEXT, payload678 TEXT, payload679 TEXT, payload680 TEXT, payload681 TEXT, payload682 TEXT, payload683 TEXT, payload684 TEXT, payload685 TEXT, payload686 TEXT, payload687 TEXT, payload688 TEXT, payload689 TEXT, payload690 TEXT, payload691 TEXT, payload692 TEXT, payload693 TEXT, payload694 TEXT, payload695 TEXT, payload696 TEXT, payload697 TEXT, payload698 TEXT, payload699 TEXT, payload700 TEXT, payload701 TEXT, payload702 TEXT, payload703 TEXT, payload704 TEXT, payload705 TEXT, payload706 TEXT, payload707 TEXT, payload708 TEXT, payload709 TEXT, payload710 TEXT, payload711 TEXT, payload712 TEXT, payload713 TEXT, payload714 TEXT, payload715 TEXT, payload716 TEXT, payload717 TEXT, payload718 TEXT, payload719 TEXT, payload720 TEXT, payload721 TEXT, payload722 TEXT, payload723 TEXT, payload724 TEXT, payload725 TEXT, payload726 TEXT, payload727 TEXT, payload728 TEXT, payload729 TEXT, payload730 TEXT, payload731 TEXT, payload732 TEXT, payload733 TEXT, payload734 TEXT, payload735 TEXT, payload736 TEXT, payload737 TEXT, payload738 TEXT, payload739 TEXT, payload740 TEXT, payload741 TEXT, payload742 TEXT, payload743 TEXT, payload744 TEXT, payload745 TEXT, payload746 TEXT, payload747 TEXT, payload748 TEXT, payload749 TEXT, payload750 TEXT, payload751 TEXT, payload752 TEXT, payload753 TEXT, payload754 TEXT, payload755 TEXT, payload756 TEXT, payload757 TEXT, payload758 TEXT, payload759 TEXT, payload760 TEXT, payload761 TEXT, payload762 TEXT, payload763 TEXT, payload764 TEXT, payload765 TEXT, payload766 TEXT, payload767 TEXT, payload768 TEXT, payload769 TEXT, payload770 TEXT, payload771 TEXT, payload772 TEXT, payload773 TEXT, payload774 TEXT, payload775 TEXT, payload776 TEXT, payload777 TEXT, payload778 TEXT, payload779 TEXT, payload780 TEXT, payload781 TEXT, payload782 TEXT, payload783 TEXT, payload784 TEXT, payload785 TEXT, payload786 TEXT, payload787 TEXT, payload788 TEXT, payload789 TEXT, payload790 TEXT, payload791 TEXT, payload792 TEXT, payload793 TEXT, payload794 TEXT, payload795 TEXT, payload796 TEXT, payload797 TEXT, payload798 TEXT, payload799 TEXT, payload800 TEXT, payload801 TEXT, payload802 TEXT, payload803 TEXT, payload804 TEXT, payload805 TEXT, payload806 TEXT, payload807 TEXT, payload808 TEXT, payload809 TEXT, payload810 TEXT, payload811 TEXT, payload812 TEXT, payload813 TEXT, payload814 TEXT, payload815 TEXT, payload816 TEXT, payload817 TEXT, payload818 TEXT, payload819 TEXT, payload820 TEXT, payload821 TEXT, payload822 TEXT, payload823 TEXT, payload824 TEXT, payload825 TEXT, payload826 TEXT, payload827 TEXT, payload828 TEXT, payload829 TEXT, payload830 TEXT, payload831 TEXT, payload832 TEXT, payload833 TEXT, payload834 TEXT, payload835 TEXT, payload836 TEXT, payload837 TEXT, payload838 TEXT, payload839 TEXT, payload840 TEXT, payload841 TEXT, payload842 TEXT, payload843 TEXT, payload844 TEXT, payload845 TEXT, payload846 TEXT, payload847 TEXT, payload848 TEXT, payload849 TEXT, payload850 TEXT, payload851 TEXT, payload852 TEXT, payload853 TEXT, payload854 TEXT, payload855 TEXT, payload856 TEXT, payload857 TEXT, payload858 TEXT, payload859 TEXT, payload860 TEXT, payload861 TEXT, payload862 TEXT, payload863 TEXT, payload864 TEXT, payload865 TEXT, payload866 TEXT, payload867 TEXT, payload868 TEXT, payload869 TEXT, payload870 TEXT, payload871 TEXT, payload872 TEXT, payload873 TEXT, payload874 TEXT, payload875 TEXT, payload876 TEXT, payload877 TEXT, payload878 TEXT, payload879 TEXT, payload880 TEXT, payload881 TEXT, payload882 TEXT, payload883 TEXT, payload884 TEXT, payload885 TEXT, payload886 TEXT, payload887 TEXT, payload888 TEXT, payload889 TEXT, payload890 TEXT, payload891 TEXT, payload892 TEXT, payload893 TEXT, payload894 TEXT, payload895 TEXT, payload896 TEXT, payload897 TEXT, payload898 TEXT, payload899 TEXT, payload900 TEXT, payload901 TEXT, payload902 TEXT, payload903 TEXT, payload904 TEXT, payload905 TEXT, payload906 TEXT, payload907 TEXT, payload908 TEXT, payload909 TEXT, payload910 TEXT, payload911 TEXT, payload912 TEXT, payload913 TEXT, payload914 TEXT, payload915 TEXT, payload916 TEXT, payload917 TEXT, payload918 TEXT, payload919 TEXT, payload920 TEXT, payload921 TEXT, payload922 TEXT, payload923 TEXT, payload924 TEXT, payload925 TEXT, payload926 TEXT, payload927 TEXT, payload928 TEXT, payload929 TEXT, payload930 TEXT, payload931 TEXT, payload932 TEXT, payload933 TEXT, payload934 TEXT, payload935 TEXT, payload936 TEXT, payload937 TEXT, payload938 TEXT, payload939 TEXT, payload940 TEXT, payload941 TEXT, payload942 TEXT, payload943 TEXT, payload944 TEXT, payload945 TEXT, payload946 TEXT, payload947 TEXT, payload948 TEXT, payload949 TEXT, payload950 TEXT, payload951 TEXT, payload952 TEXT, payload953 TEXT, payload954 TEXT, payload955 TEXT, payload956 TEXT, payload957 TEXT, payload958 TEXT, payload959 TEXT, payload960 TEXT, payload961 TEXT, payload962 TEXT, payload963 TEXT, payload964 TEXT, payload965 TEXT, payload966 TEXT, payload967 TEXT, payload968 TEXT, payload969 TEXT, payload970 TEXT, payload971 TEXT, payload972 TEXT, payload973 TEXT, payload974 TEXT, payload975 TEXT, payload976 TEXT, payload977 TEXT, payload978 TEXT, payload979 TEXT, payload980 TEXT, payload981 TEXT, payload982 TEXT, payload983 TEXT, payload984 TEXT, payload985 TEXT, payload986 TEXT, payload987 TEXT, payload988 TEXT, payload989 TEXT, payload990 TEXT, payload991 TEXT, payload992 TEXT, payload993 TEXT, payload994 TEXT, payload995 TEXT, payload996 TEXT, payload997 TEXT, payload998 TEXT, payload999 TEXT, payload1000 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1k_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_1k_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 1000 + util: RandomAString + params: [1, 1] + executeRules: + - workload: THRPT_seek_1K_col_pk_in_1K_values + run: + - name: THRPT_seek_1K_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1k_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_500_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_500_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..217e465b7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_cols/THRPT_seek_500_col_pk_in_1K_values.yaml @@ -0,0 +1,66 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_500_cols; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_500_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_500_cols; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_500_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 500 + util: RandomAString + params: [2, 2] + executeRules: + - workload: THRPT_seek_500_col_pk_in_1K_values + run: + - name: THRPT_seek_500_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_500_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_100_values.yaml new file mode 100644 index 000000000..77d36110f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_100_values.yaml @@ -0,0 +1,61 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_100_options; + - CREATE TABLE THRPT_in_100_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_100_options; + + loadRules: + - table: THRPT_in_100_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_100_values + run: + - name: THRPT_seek_pk_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_100_options WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_10_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_10_values.yaml new file mode 100644 index 000000000..6c78dd243 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_10_values.yaml @@ -0,0 +1,61 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10_options; + - CREATE TABLE THRPT_in_10_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10_options; + + loadRules: + - table: THRPT_in_10_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_10_values + run: + - name: THRPT_seek_pk_in_10_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10_options WHERE id IN (?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_10k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_10k_values.yaml new file mode 100644 index 000000000..9a3a6b76f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_10k_values.yaml @@ -0,0 +1,65 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10k_options; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_10k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10k_options; + - ALTER DATABASE postgres SET enable_seqscan=on; + - ALTER DATABASE postgres SET enable_bitmapscan=on; + + loadRules: + - table: THRPT_in_10k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_10k_values + run: + - name: THRPT_seek_pk_in_10k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10k_options WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_1_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_1_values.yaml new file mode 100644 index 000000000..15f5da69f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_1_values.yaml @@ -0,0 +1,61 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1_option; + - CREATE TABLE THRPT_in_1_option (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1_option; + + loadRules: + - table: THRPT_in_1_option + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_1_values + run: + - name: THRPT_seek_pk_in_1_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1_option WHERE id IN (?); + bindings: + - util: RandomNumber + count: 1 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_1k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_1k_values.yaml new file mode 100644 index 000000000..02439632f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_options/THRPT_seek_pk_in_1k_values.yaml @@ -0,0 +1,65 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1k_options; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_1k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1k_options; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_1k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_1k_values + run: + - name: THRPT_seek_pk_in_1k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1k_options WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_100KB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_100KB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..a6ce49f8d --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_100KB_row_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_100kb_row; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_100kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_100kb_row; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_100kb_row + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: payload + util: RandomAString + params: [102400, 102400] + executeRules: + - workload: THRPT_seek_1col_100KB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_100KB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_100kb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_10KB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_10KB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..d02ad78b0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_10KB_row_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10kb_row; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_10kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10kb_row; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_10kb_row + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [10240, 10240] + executeRules: + - workload: THRPT_seek_1col_10KB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_10KB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10kb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_1KB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_1KB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..e22081a70 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_1KB_row_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1kb_row; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_1kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1kb_row; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_1kb_row + rows: 10000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_1col_1KB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_1KB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1kb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_1MB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_1MB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..313b9a65b --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_varying_row_size/THRPT_seek_1col_1MB_row_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1mb_row; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_in_1mb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1mb_row; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_in_1mb_row + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: payload + util: RandomAString + params: [1048576, 1048576] + executeRules: + - workload: THRPT_seek_1col_1MB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_1MB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1mb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 10000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_100KB_row_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_100KB_row_in_100_values.yaml new file mode 100644 index 000000000..1f13ede95 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_100KB_row_in_100_values.yaml @@ -0,0 +1,63 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_in_100kb; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_wide_in_100kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_in_100kb; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_wide_in_100kb + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: c + count: 100 + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_100col_100KB_row_in_100_values + run: + - name: THRPT_seek_100col_100KB_row_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_in_100kb WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_10KB_row_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_10KB_row_in_100_values.yaml new file mode 100644 index 000000000..81ceafc63 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_10KB_row_in_100_values.yaml @@ -0,0 +1,63 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_in_10kb; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_wide_in_10kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_in_10kb; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_wide_in_10kb + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c + count: 100 + util: RandomAString + params: [102, 102] + executeRules: + - workload: THRPT_seek_100col_10KB_row_in_100_values + run: + - name: THRPT_seek_100col_10KB_row_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_in_10kb WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_1MB_row_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_1MB_row_in_100_values.yaml new file mode 100644 index 000000000..689b480a5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/postgres/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_1MB_row_in_100_values.yaml @@ -0,0 +1,63 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +flatMaxScalingSteps: 2 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_in_1mb; + - ALTER DATABASE postgres SET enable_seqscan=off; + - ALTER DATABASE postgres SET enable_bitmapscan=off; + - CREATE TABLE THRPT_wide_in_1mb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_in_1mb; + - ALTER DATABASE postgres SET enable_seqscan TO DEFAULT; + - ALTER DATABASE postgres SET enable_bitmapscan TO DEFAULT; + + loadRules: + - table: THRPT_wide_in_1mb + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: c + count: 100 + util: RandomAString + params: [10485, 10485] + executeRules: + - workload: THRPT_seek_100col_1MB_row_in_100_values + run: + - name: THRPT_seek_100col_1MB_row_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_in_1mb WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 10000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_100_values.yaml new file mode 100644 index 000000000..9ae99a953 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_100_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_100_options; + - CREATE TABLE THRPT_sec_idx_in_100_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_100_options (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_100_options; + + loadRules: + - table: THRPT_sec_idx_in_100_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_100_values + run: + - name: THRPT_seek_sec_idx_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_100_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10_values.yaml new file mode 100644 index 000000000..9aee9ce02 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10_options; + - CREATE TABLE THRPT_sec_idx_in_10_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_10_options (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10_options; + + loadRules: + - table: THRPT_sec_idx_in_10_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_10_values + run: + - name: THRPT_seek_sec_idx_in_10_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_10_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10k_values.yaml new file mode 100644 index 000000000..ca8e91906 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_10k_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10k_options; + - CREATE TABLE THRPT_sec_idx_in_10k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_10k_options (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_10k_options; + + loadRules: + - table: THRPT_sec_idx_in_10k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_10k_values + run: + - name: THRPT_seek_sec_idx_in_10k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_10k_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1_values.yaml new file mode 100644 index 000000000..f590b71c6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1_option; + - CREATE TABLE THRPT_sec_idx_in_1_option (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_1_option (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1_option; + + loadRules: + - table: THRPT_sec_idx_in_1_option + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_1_values + run: + - name: THRPT_seek_sec_idx_in_1_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_1_option WHERE c2 IN (?); + bindings: + - util: RandomNumber + count: 1 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1k_values.yaml new file mode 100644 index 000000000..cf48b8274 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_sec_idx_varying_options/THRPT_seek_sec_idx_in_1k_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1k_options; + - CREATE TABLE THRPT_sec_idx_in_1k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + - CREATE INDEX idx_c2 ON THRPT_sec_idx_in_1k_options (c2 asc) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_sec_idx_in_1k_options; + + loadRules: + - table: THRPT_sec_idx_in_1k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_sec_idx_in_1k_values + run: + - name: THRPT_seek_sec_idx_in_1k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_sec_idx_in_1k_options WHERE c2 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_100_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_100_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..c68cb3a7f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_100_col_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_100_cols; + - CREATE TABLE THRPT_in_100_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_100_cols; + + loadRules: + - table: THRPT_in_100_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 100 + util: RandomAString + params: [10, 10] + executeRules: + - workload: THRPT_seek_100_col_pk_in_1K_values + run: + - name: THRPT_seek_100_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_100_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_10_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_10_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..a88d92898 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_10_col_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10_cols; + - CREATE TABLE THRPT_in_10_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10_cols; + + loadRules: + - table: THRPT_in_10_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 10 + util: RandomAString + params: [100, 100] + executeRules: + - workload: THRPT_seek_10_col_pk_in_1K_values + run: + - name: THRPT_seek_10_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_1K_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_1K_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..89f2c7fe7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_1K_col_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1k_cols; + - CREATE TABLE THRPT_in_1k_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, payload501 TEXT, payload502 TEXT, payload503 TEXT, payload504 TEXT, payload505 TEXT, payload506 TEXT, payload507 TEXT, payload508 TEXT, payload509 TEXT, payload510 TEXT, payload511 TEXT, payload512 TEXT, payload513 TEXT, payload514 TEXT, payload515 TEXT, payload516 TEXT, payload517 TEXT, payload518 TEXT, payload519 TEXT, payload520 TEXT, payload521 TEXT, payload522 TEXT, payload523 TEXT, payload524 TEXT, payload525 TEXT, payload526 TEXT, payload527 TEXT, payload528 TEXT, payload529 TEXT, payload530 TEXT, payload531 TEXT, payload532 TEXT, payload533 TEXT, payload534 TEXT, payload535 TEXT, payload536 TEXT, payload537 TEXT, payload538 TEXT, payload539 TEXT, payload540 TEXT, payload541 TEXT, payload542 TEXT, payload543 TEXT, payload544 TEXT, payload545 TEXT, payload546 TEXT, payload547 TEXT, payload548 TEXT, payload549 TEXT, payload550 TEXT, payload551 TEXT, payload552 TEXT, payload553 TEXT, payload554 TEXT, payload555 TEXT, payload556 TEXT, payload557 TEXT, payload558 TEXT, payload559 TEXT, payload560 TEXT, payload561 TEXT, payload562 TEXT, payload563 TEXT, payload564 TEXT, payload565 TEXT, payload566 TEXT, payload567 TEXT, payload568 TEXT, payload569 TEXT, payload570 TEXT, payload571 TEXT, payload572 TEXT, payload573 TEXT, payload574 TEXT, payload575 TEXT, payload576 TEXT, payload577 TEXT, payload578 TEXT, payload579 TEXT, payload580 TEXT, payload581 TEXT, payload582 TEXT, payload583 TEXT, payload584 TEXT, payload585 TEXT, payload586 TEXT, payload587 TEXT, payload588 TEXT, payload589 TEXT, payload590 TEXT, payload591 TEXT, payload592 TEXT, payload593 TEXT, payload594 TEXT, payload595 TEXT, payload596 TEXT, payload597 TEXT, payload598 TEXT, payload599 TEXT, payload600 TEXT, payload601 TEXT, payload602 TEXT, payload603 TEXT, payload604 TEXT, payload605 TEXT, payload606 TEXT, payload607 TEXT, payload608 TEXT, payload609 TEXT, payload610 TEXT, payload611 TEXT, payload612 TEXT, payload613 TEXT, payload614 TEXT, payload615 TEXT, payload616 TEXT, payload617 TEXT, payload618 TEXT, payload619 TEXT, payload620 TEXT, payload621 TEXT, payload622 TEXT, payload623 TEXT, payload624 TEXT, payload625 TEXT, payload626 TEXT, payload627 TEXT, payload628 TEXT, payload629 TEXT, payload630 TEXT, payload631 TEXT, payload632 TEXT, payload633 TEXT, payload634 TEXT, payload635 TEXT, payload636 TEXT, payload637 TEXT, payload638 TEXT, payload639 TEXT, payload640 TEXT, payload641 TEXT, payload642 TEXT, payload643 TEXT, payload644 TEXT, payload645 TEXT, payload646 TEXT, payload647 TEXT, payload648 TEXT, payload649 TEXT, payload650 TEXT, payload651 TEXT, payload652 TEXT, payload653 TEXT, payload654 TEXT, payload655 TEXT, payload656 TEXT, payload657 TEXT, payload658 TEXT, payload659 TEXT, payload660 TEXT, payload661 TEXT, payload662 TEXT, payload663 TEXT, payload664 TEXT, payload665 TEXT, payload666 TEXT, payload667 TEXT, payload668 TEXT, payload669 TEXT, payload670 TEXT, payload671 TEXT, payload672 TEXT, payload673 TEXT, payload674 TEXT, payload675 TEXT, payload676 TEXT, payload677 TEXT, payload678 TEXT, payload679 TEXT, payload680 TEXT, payload681 TEXT, payload682 TEXT, payload683 TEXT, payload684 TEXT, payload685 TEXT, payload686 TEXT, payload687 TEXT, payload688 TEXT, payload689 TEXT, payload690 TEXT, payload691 TEXT, payload692 TEXT, payload693 TEXT, payload694 TEXT, payload695 TEXT, payload696 TEXT, payload697 TEXT, payload698 TEXT, payload699 TEXT, payload700 TEXT, payload701 TEXT, payload702 TEXT, payload703 TEXT, payload704 TEXT, payload705 TEXT, payload706 TEXT, payload707 TEXT, payload708 TEXT, payload709 TEXT, payload710 TEXT, payload711 TEXT, payload712 TEXT, payload713 TEXT, payload714 TEXT, payload715 TEXT, payload716 TEXT, payload717 TEXT, payload718 TEXT, payload719 TEXT, payload720 TEXT, payload721 TEXT, payload722 TEXT, payload723 TEXT, payload724 TEXT, payload725 TEXT, payload726 TEXT, payload727 TEXT, payload728 TEXT, payload729 TEXT, payload730 TEXT, payload731 TEXT, payload732 TEXT, payload733 TEXT, payload734 TEXT, payload735 TEXT, payload736 TEXT, payload737 TEXT, payload738 TEXT, payload739 TEXT, payload740 TEXT, payload741 TEXT, payload742 TEXT, payload743 TEXT, payload744 TEXT, payload745 TEXT, payload746 TEXT, payload747 TEXT, payload748 TEXT, payload749 TEXT, payload750 TEXT, payload751 TEXT, payload752 TEXT, payload753 TEXT, payload754 TEXT, payload755 TEXT, payload756 TEXT, payload757 TEXT, payload758 TEXT, payload759 TEXT, payload760 TEXT, payload761 TEXT, payload762 TEXT, payload763 TEXT, payload764 TEXT, payload765 TEXT, payload766 TEXT, payload767 TEXT, payload768 TEXT, payload769 TEXT, payload770 TEXT, payload771 TEXT, payload772 TEXT, payload773 TEXT, payload774 TEXT, payload775 TEXT, payload776 TEXT, payload777 TEXT, payload778 TEXT, payload779 TEXT, payload780 TEXT, payload781 TEXT, payload782 TEXT, payload783 TEXT, payload784 TEXT, payload785 TEXT, payload786 TEXT, payload787 TEXT, payload788 TEXT, payload789 TEXT, payload790 TEXT, payload791 TEXT, payload792 TEXT, payload793 TEXT, payload794 TEXT, payload795 TEXT, payload796 TEXT, payload797 TEXT, payload798 TEXT, payload799 TEXT, payload800 TEXT, payload801 TEXT, payload802 TEXT, payload803 TEXT, payload804 TEXT, payload805 TEXT, payload806 TEXT, payload807 TEXT, payload808 TEXT, payload809 TEXT, payload810 TEXT, payload811 TEXT, payload812 TEXT, payload813 TEXT, payload814 TEXT, payload815 TEXT, payload816 TEXT, payload817 TEXT, payload818 TEXT, payload819 TEXT, payload820 TEXT, payload821 TEXT, payload822 TEXT, payload823 TEXT, payload824 TEXT, payload825 TEXT, payload826 TEXT, payload827 TEXT, payload828 TEXT, payload829 TEXT, payload830 TEXT, payload831 TEXT, payload832 TEXT, payload833 TEXT, payload834 TEXT, payload835 TEXT, payload836 TEXT, payload837 TEXT, payload838 TEXT, payload839 TEXT, payload840 TEXT, payload841 TEXT, payload842 TEXT, payload843 TEXT, payload844 TEXT, payload845 TEXT, payload846 TEXT, payload847 TEXT, payload848 TEXT, payload849 TEXT, payload850 TEXT, payload851 TEXT, payload852 TEXT, payload853 TEXT, payload854 TEXT, payload855 TEXT, payload856 TEXT, payload857 TEXT, payload858 TEXT, payload859 TEXT, payload860 TEXT, payload861 TEXT, payload862 TEXT, payload863 TEXT, payload864 TEXT, payload865 TEXT, payload866 TEXT, payload867 TEXT, payload868 TEXT, payload869 TEXT, payload870 TEXT, payload871 TEXT, payload872 TEXT, payload873 TEXT, payload874 TEXT, payload875 TEXT, payload876 TEXT, payload877 TEXT, payload878 TEXT, payload879 TEXT, payload880 TEXT, payload881 TEXT, payload882 TEXT, payload883 TEXT, payload884 TEXT, payload885 TEXT, payload886 TEXT, payload887 TEXT, payload888 TEXT, payload889 TEXT, payload890 TEXT, payload891 TEXT, payload892 TEXT, payload893 TEXT, payload894 TEXT, payload895 TEXT, payload896 TEXT, payload897 TEXT, payload898 TEXT, payload899 TEXT, payload900 TEXT, payload901 TEXT, payload902 TEXT, payload903 TEXT, payload904 TEXT, payload905 TEXT, payload906 TEXT, payload907 TEXT, payload908 TEXT, payload909 TEXT, payload910 TEXT, payload911 TEXT, payload912 TEXT, payload913 TEXT, payload914 TEXT, payload915 TEXT, payload916 TEXT, payload917 TEXT, payload918 TEXT, payload919 TEXT, payload920 TEXT, payload921 TEXT, payload922 TEXT, payload923 TEXT, payload924 TEXT, payload925 TEXT, payload926 TEXT, payload927 TEXT, payload928 TEXT, payload929 TEXT, payload930 TEXT, payload931 TEXT, payload932 TEXT, payload933 TEXT, payload934 TEXT, payload935 TEXT, payload936 TEXT, payload937 TEXT, payload938 TEXT, payload939 TEXT, payload940 TEXT, payload941 TEXT, payload942 TEXT, payload943 TEXT, payload944 TEXT, payload945 TEXT, payload946 TEXT, payload947 TEXT, payload948 TEXT, payload949 TEXT, payload950 TEXT, payload951 TEXT, payload952 TEXT, payload953 TEXT, payload954 TEXT, payload955 TEXT, payload956 TEXT, payload957 TEXT, payload958 TEXT, payload959 TEXT, payload960 TEXT, payload961 TEXT, payload962 TEXT, payload963 TEXT, payload964 TEXT, payload965 TEXT, payload966 TEXT, payload967 TEXT, payload968 TEXT, payload969 TEXT, payload970 TEXT, payload971 TEXT, payload972 TEXT, payload973 TEXT, payload974 TEXT, payload975 TEXT, payload976 TEXT, payload977 TEXT, payload978 TEXT, payload979 TEXT, payload980 TEXT, payload981 TEXT, payload982 TEXT, payload983 TEXT, payload984 TEXT, payload985 TEXT, payload986 TEXT, payload987 TEXT, payload988 TEXT, payload989 TEXT, payload990 TEXT, payload991 TEXT, payload992 TEXT, payload993 TEXT, payload994 TEXT, payload995 TEXT, payload996 TEXT, payload997 TEXT, payload998 TEXT, payload999 TEXT, payload1000 TEXT, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1k_cols; + + loadRules: + - table: THRPT_in_1k_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 1000 + util: RandomAString + params: [1, 1] + executeRules: + - workload: THRPT_seek_1K_col_pk_in_1K_values + run: + - name: THRPT_seek_1K_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1k_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_500_col_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_500_col_pk_in_1K_values.yaml new file mode 100644 index 000000000..158798624 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_cols/THRPT_seek_500_col_pk_in_1K_values.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_500_cols; + - CREATE TABLE THRPT_in_500_cols (id INT, c1 int, c2 int, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_500_cols; + + loadRules: + - table: THRPT_in_500_cols + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + count: 500 + util: RandomAString + params: [2, 2] + executeRules: + - workload: THRPT_seek_500_col_pk_in_1K_values + run: + - name: THRPT_seek_500_col_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_500_cols WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_100_values.yaml new file mode 100644 index 000000000..4b4d9b780 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_100_values.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_100_options; + - CREATE TABLE THRPT_in_100_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_100_options; + + loadRules: + - table: THRPT_in_100_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_100_values + run: + - name: THRPT_seek_pk_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_100_options WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_10_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_10_values.yaml new file mode 100644 index 000000000..0a79da750 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_10_values.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10_options; + - CREATE TABLE THRPT_in_10_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10_options; + + loadRules: + - table: THRPT_in_10_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_10_values + run: + - name: THRPT_seek_pk_in_10_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10_options WHERE id IN (?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_10k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_10k_values.yaml new file mode 100644 index 000000000..e3a603963 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_10k_values.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10k_options; + - CREATE TABLE THRPT_in_10k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10k_options; + + loadRules: + - table: THRPT_in_10k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_10k_values + run: + - name: THRPT_seek_pk_in_10k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10k_options WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 10000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_1_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_1_values.yaml new file mode 100644 index 000000000..d563c7890 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_1_values.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1_option; + - CREATE TABLE THRPT_in_1_option (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1_option; + + loadRules: + - table: THRPT_in_1_option + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_1_values + run: + - name: THRPT_seek_pk_in_1_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1_option WHERE id IN (?); + bindings: + - util: RandomNumber + count: 1 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_1k_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_1k_values.yaml new file mode 100644 index 000000000..8f0b095fb --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_options/THRPT_seek_pk_in_1k_values.yaml @@ -0,0 +1,61 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1k_options; + - CREATE TABLE THRPT_in_1k_options (id INT, c1 int, c2 int, payload text, PRIMARY KEY(id asc)) split at values ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1k_options; + + loadRules: + - table: THRPT_in_1k_options + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c1 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c2 + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_pk_in_1k_values + run: + - name: THRPT_seek_pk_in_1k_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1k_options WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 1000 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_100KB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_100KB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..60560e76f --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_100KB_row_pk_in_1K_values.yaml @@ -0,0 +1,58 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_100kb_row; + - CREATE TABLE THRPT_in_100kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((33333), (66666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_100kb_row; + + loadRules: + - table: THRPT_in_100kb_row + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: payload + util: RandomAString + params: [102400, 102400] + executeRules: + - workload: THRPT_seek_1col_100KB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_100KB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_100kb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_10KB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_10KB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..96ba6ada4 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_10KB_row_pk_in_1K_values.yaml @@ -0,0 +1,58 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_10kb_row; + - CREATE TABLE THRPT_in_10kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_10kb_row; + + loadRules: + - table: THRPT_in_10kb_row + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: payload + util: RandomAString + params: [10240, 10240] + executeRules: + - workload: THRPT_seek_1col_10KB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_10KB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_10kb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_1KB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_1KB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..fbcd48b4e --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_1KB_row_pk_in_1K_values.yaml @@ -0,0 +1,58 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1kb_row; + - CREATE TABLE THRPT_in_1kb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((3333333), (6666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1kb_row; + + loadRules: + - table: THRPT_in_1kb_row + rows: 10000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000000] + - name: payload + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_1col_1KB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_1KB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1kb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_1MB_row_pk_in_1K_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_1MB_row_pk_in_1K_values.yaml new file mode 100644 index 000000000..1821aee89 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_varying_row_size/THRPT_seek_1col_1MB_row_pk_in_1K_values.yaml @@ -0,0 +1,58 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_in_1mb_row; + - CREATE TABLE THRPT_in_1mb_row (id INT, lookup_key INT, payload TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((3333), (6666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_in_1mb_row; + + loadRules: + - table: THRPT_in_1mb_row + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: payload + util: RandomAString + params: [1048576, 1048576] + executeRules: + - workload: THRPT_seek_1col_1MB_row_pk_in_1K_values + run: + - name: THRPT_seek_1col_1MB_row_pk_in_1K_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_in_1mb_row WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 10000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_100KB_row_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_100KB_row_in_100_values.yaml new file mode 100644 index 000000000..bae1af3c9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_100KB_row_in_100_values.yaml @@ -0,0 +1,59 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_in_100kb; + - CREATE TABLE THRPT_wide_in_100kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((33333), (66666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_in_100kb; + + loadRules: + - table: THRPT_wide_in_100kb + rows: 100000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 100000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 100000] + - name: c + count: 100 + util: RandomAString + params: [1024, 1024] + executeRules: + - workload: THRPT_seek_100col_100KB_row_in_100_values + run: + - name: THRPT_seek_100col_100KB_row_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_in_100kb WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_10KB_row_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_10KB_row_in_100_values.yaml new file mode 100644 index 000000000..d83681a68 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_10KB_row_in_100_values.yaml @@ -0,0 +1,59 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_in_10kb; + - CREATE TABLE THRPT_wide_in_10kb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((333333), (666666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_in_10kb; + + loadRules: + - table: THRPT_wide_in_10kb + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 1000000] + - name: c + count: 100 + util: RandomAString + params: [102, 102] + executeRules: + - workload: THRPT_seek_100col_10KB_row_in_100_values + run: + - name: THRPT_seek_100col_10KB_row_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_in_10kb WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 1000000] diff --git a/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_1MB_row_in_100_values.yaml b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_1MB_row_in_100_values.yaml new file mode 100644 index 000000000..da89781d6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_seek_workloads/yugabyte/THRPT_seek_wide_table_varying_row_size/THRPT_seek_100col_1MB_row_in_100_values.yaml @@ -0,0 +1,59 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 1 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 75 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 120 +time: 600 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_wide_in_1mb; + - CREATE TABLE THRPT_wide_in_1mb (id INT, lookup_key INT, c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT, c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT, c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT, c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT, c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT, c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT, c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT, c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT, c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT, c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT, c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT, c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT, c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT, c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT, c99 TEXT, c100 TEXT, PRIMARY KEY(id asc)) SPLIT AT VALUES ((3333), (6666)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_wide_in_1mb; + + loadRules: + - table: THRPT_wide_in_1mb + rows: 10000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 10000] + - name: lookup_key + util: RandomUniqueIntGen + params: [1, 10000] + - name: c + count: 100 + util: RandomAString + params: [10485, 10485] + executeRules: + - workload: THRPT_seek_100col_1MB_row_in_100_values + run: + - name: THRPT_seek_100col_1MB_row_in_100_values + weight: 100 + queries: + - query: SELECT * FROM THRPT_wide_in_1mb WHERE id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); + bindings: + - util: RandomNumber + count: 100 + params: [1, 10000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_100row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_100row.yaml new file mode 100644 index 000000000..77fc1c5af --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_100row.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_100; + - CREATE TABLE THRPT_MVI_100 (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_100; + + loadRules: + - table: THRPT_MVI_100 + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_100row + run: + - name: THRPT_multivalue_insert_100row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_100 VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 100 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_10row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_10row.yaml new file mode 100644 index 000000000..94b7831c3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_10row.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_10; + - CREATE TABLE THRPT_MVI_10 (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_10; + + loadRules: + - table: THRPT_MVI_10 + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_10row + run: + - name: THRPT_multivalue_insert_10row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_10 VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1krow.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1krow.yaml new file mode 100644 index 000000000..6793d733b --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1krow.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1k; + - CREATE TABLE THRPT_MVI_1k (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1k; + + loadRules: + - table: THRPT_MVI_1k + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_1krow + run: + - name: THRPT_multivalue_insert_1krow + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1k VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 1000 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1row.yaml new file mode 100644 index 000000000..acbedfe74 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1row.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1; + - CREATE TABLE THRPT_MVI_1 (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1; + + loadRules: + - table: THRPT_MVI_1 + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_1row + run: + - name: THRPT_multivalue_insert_1row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1 VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 1 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_5krow.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_5krow.yaml new file mode 100644 index 000000000..b10f8ce3b --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_5krow.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_5k; + - CREATE TABLE THRPT_MVI_5k (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_5k; + + loadRules: + - table: THRPT_MVI_5k + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_5krow + run: + - name: THRPT_multivalue_insert_5krow + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_5k VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 5000 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_100cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_100cols.yaml new file mode 100644 index 000000000..ce1310d50 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_100cols.yaml @@ -0,0 +1,63 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_100_col; + - CREATE TABLE THRPT_MVI_100_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, PRIMARY KEY(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_100_col; + + loadRules: + - table: THRPT_MVI_100_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 100 + util: RandomAString + params: [10, 10] + + executeRules: + - workload: THRPT_multivalue_insert_100cols + run: + - name: THRPT_multivalue_insert_100cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_100_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 100 + params: [10, 10] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_10cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_10cols.yaml new file mode 100644 index 000000000..57e5c9b0d --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_10cols.yaml @@ -0,0 +1,63 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_10_col; + - CREATE TABLE THRPT_MVI_10_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, PRIMARY KEY(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_10_col; + + loadRules: + - table: THRPT_MVI_10_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 10 + util: RandomAString + params: [100, 100] + + executeRules: + - workload: THRPT_multivalue_insert_10cols + run: + - name: THRPT_multivalue_insert_10cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_10_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 10 + params: [100, 100] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1Kcols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1Kcols.yaml new file mode 100644 index 000000000..fbab30ca5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1Kcols.yaml @@ -0,0 +1,63 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 16 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1k_col; + - CREATE TABLE THRPT_MVI_1k_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, payload501 TEXT, payload502 TEXT, payload503 TEXT, payload504 TEXT, payload505 TEXT, payload506 TEXT, payload507 TEXT, payload508 TEXT, payload509 TEXT, payload510 TEXT, payload511 TEXT, payload512 TEXT, payload513 TEXT, payload514 TEXT, payload515 TEXT, payload516 TEXT, payload517 TEXT, payload518 TEXT, payload519 TEXT, payload520 TEXT, payload521 TEXT, payload522 TEXT, payload523 TEXT, payload524 TEXT, payload525 TEXT, payload526 TEXT, payload527 TEXT, payload528 TEXT, payload529 TEXT, payload530 TEXT, payload531 TEXT, payload532 TEXT, payload533 TEXT, payload534 TEXT, payload535 TEXT, payload536 TEXT, payload537 TEXT, payload538 TEXT, payload539 TEXT, payload540 TEXT, payload541 TEXT, payload542 TEXT, payload543 TEXT, payload544 TEXT, payload545 TEXT, payload546 TEXT, payload547 TEXT, payload548 TEXT, payload549 TEXT, payload550 TEXT, payload551 TEXT, payload552 TEXT, payload553 TEXT, payload554 TEXT, payload555 TEXT, payload556 TEXT, payload557 TEXT, payload558 TEXT, payload559 TEXT, payload560 TEXT, payload561 TEXT, payload562 TEXT, payload563 TEXT, payload564 TEXT, payload565 TEXT, payload566 TEXT, payload567 TEXT, payload568 TEXT, payload569 TEXT, payload570 TEXT, payload571 TEXT, payload572 TEXT, payload573 TEXT, payload574 TEXT, payload575 TEXT, payload576 TEXT, payload577 TEXT, payload578 TEXT, payload579 TEXT, payload580 TEXT, payload581 TEXT, payload582 TEXT, payload583 TEXT, payload584 TEXT, payload585 TEXT, payload586 TEXT, payload587 TEXT, payload588 TEXT, payload589 TEXT, payload590 TEXT, payload591 TEXT, payload592 TEXT, payload593 TEXT, payload594 TEXT, payload595 TEXT, payload596 TEXT, payload597 TEXT, payload598 TEXT, payload599 TEXT, payload600 TEXT, payload601 TEXT, payload602 TEXT, payload603 TEXT, payload604 TEXT, payload605 TEXT, payload606 TEXT, payload607 TEXT, payload608 TEXT, payload609 TEXT, payload610 TEXT, payload611 TEXT, payload612 TEXT, payload613 TEXT, payload614 TEXT, payload615 TEXT, payload616 TEXT, payload617 TEXT, payload618 TEXT, payload619 TEXT, payload620 TEXT, payload621 TEXT, payload622 TEXT, payload623 TEXT, payload624 TEXT, payload625 TEXT, payload626 TEXT, payload627 TEXT, payload628 TEXT, payload629 TEXT, payload630 TEXT, payload631 TEXT, payload632 TEXT, payload633 TEXT, payload634 TEXT, payload635 TEXT, payload636 TEXT, payload637 TEXT, payload638 TEXT, payload639 TEXT, payload640 TEXT, payload641 TEXT, payload642 TEXT, payload643 TEXT, payload644 TEXT, payload645 TEXT, payload646 TEXT, payload647 TEXT, payload648 TEXT, payload649 TEXT, payload650 TEXT, payload651 TEXT, payload652 TEXT, payload653 TEXT, payload654 TEXT, payload655 TEXT, payload656 TEXT, payload657 TEXT, payload658 TEXT, payload659 TEXT, payload660 TEXT, payload661 TEXT, payload662 TEXT, payload663 TEXT, payload664 TEXT, payload665 TEXT, payload666 TEXT, payload667 TEXT, payload668 TEXT, payload669 TEXT, payload670 TEXT, payload671 TEXT, payload672 TEXT, payload673 TEXT, payload674 TEXT, payload675 TEXT, payload676 TEXT, payload677 TEXT, payload678 TEXT, payload679 TEXT, payload680 TEXT, payload681 TEXT, payload682 TEXT, payload683 TEXT, payload684 TEXT, payload685 TEXT, payload686 TEXT, payload687 TEXT, payload688 TEXT, payload689 TEXT, payload690 TEXT, payload691 TEXT, payload692 TEXT, payload693 TEXT, payload694 TEXT, payload695 TEXT, payload696 TEXT, payload697 TEXT, payload698 TEXT, payload699 TEXT, payload700 TEXT, payload701 TEXT, payload702 TEXT, payload703 TEXT, payload704 TEXT, payload705 TEXT, payload706 TEXT, payload707 TEXT, payload708 TEXT, payload709 TEXT, payload710 TEXT, payload711 TEXT, payload712 TEXT, payload713 TEXT, payload714 TEXT, payload715 TEXT, payload716 TEXT, payload717 TEXT, payload718 TEXT, payload719 TEXT, payload720 TEXT, payload721 TEXT, payload722 TEXT, payload723 TEXT, payload724 TEXT, payload725 TEXT, payload726 TEXT, payload727 TEXT, payload728 TEXT, payload729 TEXT, payload730 TEXT, payload731 TEXT, payload732 TEXT, payload733 TEXT, payload734 TEXT, payload735 TEXT, payload736 TEXT, payload737 TEXT, payload738 TEXT, payload739 TEXT, payload740 TEXT, payload741 TEXT, payload742 TEXT, payload743 TEXT, payload744 TEXT, payload745 TEXT, payload746 TEXT, payload747 TEXT, payload748 TEXT, payload749 TEXT, payload750 TEXT, payload751 TEXT, payload752 TEXT, payload753 TEXT, payload754 TEXT, payload755 TEXT, payload756 TEXT, payload757 TEXT, payload758 TEXT, payload759 TEXT, payload760 TEXT, payload761 TEXT, payload762 TEXT, payload763 TEXT, payload764 TEXT, payload765 TEXT, payload766 TEXT, payload767 TEXT, payload768 TEXT, payload769 TEXT, payload770 TEXT, payload771 TEXT, payload772 TEXT, payload773 TEXT, payload774 TEXT, payload775 TEXT, payload776 TEXT, payload777 TEXT, payload778 TEXT, payload779 TEXT, payload780 TEXT, payload781 TEXT, payload782 TEXT, payload783 TEXT, payload784 TEXT, payload785 TEXT, payload786 TEXT, payload787 TEXT, payload788 TEXT, payload789 TEXT, payload790 TEXT, payload791 TEXT, payload792 TEXT, payload793 TEXT, payload794 TEXT, payload795 TEXT, payload796 TEXT, payload797 TEXT, payload798 TEXT, payload799 TEXT, payload800 TEXT, payload801 TEXT, payload802 TEXT, payload803 TEXT, payload804 TEXT, payload805 TEXT, payload806 TEXT, payload807 TEXT, payload808 TEXT, payload809 TEXT, payload810 TEXT, payload811 TEXT, payload812 TEXT, payload813 TEXT, payload814 TEXT, payload815 TEXT, payload816 TEXT, payload817 TEXT, payload818 TEXT, payload819 TEXT, payload820 TEXT, payload821 TEXT, payload822 TEXT, payload823 TEXT, payload824 TEXT, payload825 TEXT, payload826 TEXT, payload827 TEXT, payload828 TEXT, payload829 TEXT, payload830 TEXT, payload831 TEXT, payload832 TEXT, payload833 TEXT, payload834 TEXT, payload835 TEXT, payload836 TEXT, payload837 TEXT, payload838 TEXT, payload839 TEXT, payload840 TEXT, payload841 TEXT, payload842 TEXT, payload843 TEXT, payload844 TEXT, payload845 TEXT, payload846 TEXT, payload847 TEXT, payload848 TEXT, payload849 TEXT, payload850 TEXT, payload851 TEXT, payload852 TEXT, payload853 TEXT, payload854 TEXT, payload855 TEXT, payload856 TEXT, payload857 TEXT, payload858 TEXT, payload859 TEXT, payload860 TEXT, payload861 TEXT, payload862 TEXT, payload863 TEXT, payload864 TEXT, payload865 TEXT, payload866 TEXT, payload867 TEXT, payload868 TEXT, payload869 TEXT, payload870 TEXT, payload871 TEXT, payload872 TEXT, payload873 TEXT, payload874 TEXT, payload875 TEXT, payload876 TEXT, payload877 TEXT, payload878 TEXT, payload879 TEXT, payload880 TEXT, payload881 TEXT, payload882 TEXT, payload883 TEXT, payload884 TEXT, payload885 TEXT, payload886 TEXT, payload887 TEXT, payload888 TEXT, payload889 TEXT, payload890 TEXT, payload891 TEXT, payload892 TEXT, payload893 TEXT, payload894 TEXT, payload895 TEXT, payload896 TEXT, payload897 TEXT, payload898 TEXT, payload899 TEXT, payload900 TEXT, payload901 TEXT, payload902 TEXT, payload903 TEXT, payload904 TEXT, payload905 TEXT, payload906 TEXT, payload907 TEXT, payload908 TEXT, payload909 TEXT, payload910 TEXT, payload911 TEXT, payload912 TEXT, payload913 TEXT, payload914 TEXT, payload915 TEXT, payload916 TEXT, payload917 TEXT, payload918 TEXT, payload919 TEXT, payload920 TEXT, payload921 TEXT, payload922 TEXT, payload923 TEXT, payload924 TEXT, payload925 TEXT, payload926 TEXT, payload927 TEXT, payload928 TEXT, payload929 TEXT, payload930 TEXT, payload931 TEXT, payload932 TEXT, payload933 TEXT, payload934 TEXT, payload935 TEXT, payload936 TEXT, payload937 TEXT, payload938 TEXT, payload939 TEXT, payload940 TEXT, payload941 TEXT, payload942 TEXT, payload943 TEXT, payload944 TEXT, payload945 TEXT, payload946 TEXT, payload947 TEXT, payload948 TEXT, payload949 TEXT, payload950 TEXT, payload951 TEXT, payload952 TEXT, payload953 TEXT, payload954 TEXT, payload955 TEXT, payload956 TEXT, payload957 TEXT, payload958 TEXT, payload959 TEXT, payload960 TEXT, payload961 TEXT, payload962 TEXT, payload963 TEXT, payload964 TEXT, payload965 TEXT, payload966 TEXT, payload967 TEXT, payload968 TEXT, payload969 TEXT, payload970 TEXT, payload971 TEXT, payload972 TEXT, payload973 TEXT, payload974 TEXT, payload975 TEXT, payload976 TEXT, payload977 TEXT, payload978 TEXT, payload979 TEXT, payload980 TEXT, payload981 TEXT, payload982 TEXT, payload983 TEXT, payload984 TEXT, payload985 TEXT, payload986 TEXT, payload987 TEXT, payload988 TEXT, payload989 TEXT, payload990 TEXT, payload991 TEXT, payload992 TEXT, payload993 TEXT, payload994 TEXT, payload995 TEXT, payload996 TEXT, payload997 TEXT, payload998 TEXT, payload999 TEXT, payload1000 TEXT, PRIMARY KEY(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1k_col; + + loadRules: + - table: THRPT_MVI_1k_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 1000 + util: RandomAString + params: [1, 1] + + executeRules: + - workload: THRPT_multivalue_insert_1Kcols + run: + - name: THRPT_multivalue_insert_1Kcols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1k_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 1000 + params: [1, 1] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1cols.yaml new file mode 100644 index 000000000..e7e0b908e --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1cols.yaml @@ -0,0 +1,61 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1_col; + - CREATE TABLE THRPT_MVI_1_col (dept_id INT, emp_id INT, payload TEXT, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1_col; + + loadRules: + - table: THRPT_MVI_1_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: THRPT_multivalue_insert_1cols + run: + - name: THRPT_multivalue_insert_1cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1_col VALUES [(?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [1000, 1000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_500cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_500cols.yaml new file mode 100644 index 000000000..ebc13816b --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_cols/THRPT_multivalue_insert_500cols.yaml @@ -0,0 +1,63 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 32 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_500_col; + - CREATE TABLE THRPT_MVI_500_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, PRIMARY KEY(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_500_col; + + loadRules: + - table: THRPT_MVI_500_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 500 + util: RandomAString + params: [2, 2] + + executeRules: + - workload: THRPT_multivalue_insert_500cols + run: + - name: THRPT_multivalue_insert_500cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_500_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 500 + params: [2, 2] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_100KB_row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_100KB_row.yaml new file mode 100644 index 000000000..71a536b20 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_100KB_row.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 64 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_100KB_row_size; + - CREATE TABLE THRPT_MVI_100KB_row_size (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_100KB_row_size; + + loadRules: + - table: THRPT_MVI_100KB_row_size + rows: 100000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 100000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [51200, 51200] + - name: details + util: RandomAString + params: [51200, 51200] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_100KB_row + run: + - name: THRPT_multivalue_insert_100KB_row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_100KB_row_size VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [100001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [51200, 51200] + - util: RandomAString + params: [51200, 51200] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_10KB_row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_10KB_row.yaml new file mode 100644 index 000000000..12bda45cc --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_10KB_row.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_10KB_row_size; + - CREATE TABLE THRPT_MVI_10KB_row_size (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_10KB_row_size; + + loadRules: + - table: THRPT_MVI_10KB_row_size + rows: 1000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 1000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [5120, 5120] + - name: details + util: RandomAString + params: [5120, 5120] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_10KB_row + run: + - name: THRPT_multivalue_insert_10KB_row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_10KB_row_size VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [1000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [5120, 5120] + - util: RandomAString + params: [5120, 5120] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_1MB_row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_1MB_row.yaml new file mode 100644 index 000000000..f0ae3ebf3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_1MB_row.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 8 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1MB_row_size; + - CREATE TABLE THRPT_MVI_1MB_row_size (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1MB_row_size; + + loadRules: + - table: THRPT_MVI_1MB_row_size + rows: 10000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512000, 512000] + - name: details + util: RandomAString + params: [512000, 512000] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_1MB_row + run: + - name: THRPT_multivalue_insert_1MB_row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1MB_row_size VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512000, 512000] + - util: RandomAString + params: [512000, 512000] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_100_rows.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_100_rows.yaml new file mode 100644 index 000000000..d2a7440c6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_100_rows.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS THRPT_100_single_inserts; + - CREATE TABLE THRPT_100_single_inserts (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_100_single_inserts; + + loadRules: + - table: THRPT_100_single_inserts + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_single_inserts_100_rows + run: + - name: THRPT_single_inserts_100_rows + weight: 100 + queries: + - query: INSERT INTO THRPT_100_single_inserts VALUES (?,?,?,?,?,?,?,?,?,?,?); + count: 100 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_10_rows.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_10_rows.yaml new file mode 100644 index 000000000..ce8cd5f0b --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_10_rows.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS THRPT_10_single_inserts; + - CREATE TABLE THRPT_10_single_inserts (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_10_single_inserts; + + loadRules: + - table: THRPT_10_single_inserts + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_single_inserts_10_rows + run: + - name: THRPT_single_inserts_10_rows + weight: 100 + queries: + - query: INSERT INTO THRPT_10_single_inserts VALUES (?,?,?,?,?,?,?,?,?,?,?); + count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_1K_rows.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_1K_rows.yaml new file mode 100644 index 000000000..b676697a2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/postgres/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_1K_rows.yaml @@ -0,0 +1,99 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS THRPT_1K_single_inserts; + - CREATE TABLE THRPT_1K_single_inserts (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id, emp_id)); + cleanup: + - DROP TABLE IF EXISTS THRPT_1K_single_inserts; + + loadRules: + - table: THRPT_1K_single_inserts + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_single_inserts_1K_rows + run: + - name: THRPT_single_inserts_1K_rows + weight: 100 + queries: + - query: INSERT INTO THRPT_1K_single_inserts VALUES (?,?,?,?,?,?,?,?,?,?,?); + count: 1000 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_100row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_100row.yaml new file mode 100644 index 000000000..4f17ff617 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_100row.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_100; + - CREATE TABLE THRPT_MVI_100 (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_100; + + loadRules: + - table: THRPT_MVI_100 + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_100row + run: + - name: THRPT_multivalue_insert_100row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_100 VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 100 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_10row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_10row.yaml new file mode 100644 index 000000000..e75d1cd81 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_10row.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_10; + - CREATE TABLE THRPT_MVI_10 (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_10; + + loadRules: + - table: THRPT_MVI_10 + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_10row + run: + - name: THRPT_multivalue_insert_10row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_10 VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1krow.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1krow.yaml new file mode 100644 index 000000000..29d785868 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1krow.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1k; + - CREATE TABLE THRPT_MVI_1k (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1k; + + loadRules: + - table: THRPT_MVI_1k + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_1krow + run: + - name: THRPT_multivalue_insert_1krow + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1k VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 1000 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1row.yaml new file mode 100644 index 000000000..5094f6606 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_1row.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1; + - CREATE TABLE THRPT_MVI_1 (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1; + + loadRules: + - table: THRPT_MVI_1 + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_1row + run: + - name: THRPT_multivalue_insert_1row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1 VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 1 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_5krow.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_5krow.yaml new file mode 100644 index 000000000..58b5b2774 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_batchSize/THRPT_multivalue_insert_5krow.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_5k; + - CREATE TABLE THRPT_MVI_5k (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_5k; + + loadRules: + - table: THRPT_MVI_5k + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_5krow + run: + - name: THRPT_multivalue_insert_5krow + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_5k VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 5000 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_100cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_100cols.yaml new file mode 100644 index 000000000..7a5301e58 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_100cols.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_100_col; + - CREATE TABLE THRPT_MVI_100_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, PRIMARY KEY(dept_id ASC, emp_id ASC)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_100_col; + + loadRules: + - table: THRPT_MVI_100_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 100 + util: RandomAString + params: [10, 10] + + executeRules: + - workload: THRPT_multivalue_insert_100cols + run: + - name: THRPT_multivalue_insert_100cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_100_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 100 + params: [10, 10] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_10cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_10cols.yaml new file mode 100644 index 000000000..587e82e45 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_10cols.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_10_col; + - CREATE TABLE THRPT_MVI_10_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, PRIMARY KEY(dept_id ASC, emp_id ASC)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_10_col; + + loadRules: + - table: THRPT_MVI_10_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 10 + util: RandomAString + params: [100, 100] + + executeRules: + - workload: THRPT_multivalue_insert_10cols + run: + - name: THRPT_multivalue_insert_10cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_10_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 10 + params: [100, 100] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1Kcols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1Kcols.yaml new file mode 100644 index 000000000..d250d9082 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1Kcols.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 16 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1k_col; + - CREATE TABLE THRPT_MVI_1k_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, payload501 TEXT, payload502 TEXT, payload503 TEXT, payload504 TEXT, payload505 TEXT, payload506 TEXT, payload507 TEXT, payload508 TEXT, payload509 TEXT, payload510 TEXT, payload511 TEXT, payload512 TEXT, payload513 TEXT, payload514 TEXT, payload515 TEXT, payload516 TEXT, payload517 TEXT, payload518 TEXT, payload519 TEXT, payload520 TEXT, payload521 TEXT, payload522 TEXT, payload523 TEXT, payload524 TEXT, payload525 TEXT, payload526 TEXT, payload527 TEXT, payload528 TEXT, payload529 TEXT, payload530 TEXT, payload531 TEXT, payload532 TEXT, payload533 TEXT, payload534 TEXT, payload535 TEXT, payload536 TEXT, payload537 TEXT, payload538 TEXT, payload539 TEXT, payload540 TEXT, payload541 TEXT, payload542 TEXT, payload543 TEXT, payload544 TEXT, payload545 TEXT, payload546 TEXT, payload547 TEXT, payload548 TEXT, payload549 TEXT, payload550 TEXT, payload551 TEXT, payload552 TEXT, payload553 TEXT, payload554 TEXT, payload555 TEXT, payload556 TEXT, payload557 TEXT, payload558 TEXT, payload559 TEXT, payload560 TEXT, payload561 TEXT, payload562 TEXT, payload563 TEXT, payload564 TEXT, payload565 TEXT, payload566 TEXT, payload567 TEXT, payload568 TEXT, payload569 TEXT, payload570 TEXT, payload571 TEXT, payload572 TEXT, payload573 TEXT, payload574 TEXT, payload575 TEXT, payload576 TEXT, payload577 TEXT, payload578 TEXT, payload579 TEXT, payload580 TEXT, payload581 TEXT, payload582 TEXT, payload583 TEXT, payload584 TEXT, payload585 TEXT, payload586 TEXT, payload587 TEXT, payload588 TEXT, payload589 TEXT, payload590 TEXT, payload591 TEXT, payload592 TEXT, payload593 TEXT, payload594 TEXT, payload595 TEXT, payload596 TEXT, payload597 TEXT, payload598 TEXT, payload599 TEXT, payload600 TEXT, payload601 TEXT, payload602 TEXT, payload603 TEXT, payload604 TEXT, payload605 TEXT, payload606 TEXT, payload607 TEXT, payload608 TEXT, payload609 TEXT, payload610 TEXT, payload611 TEXT, payload612 TEXT, payload613 TEXT, payload614 TEXT, payload615 TEXT, payload616 TEXT, payload617 TEXT, payload618 TEXT, payload619 TEXT, payload620 TEXT, payload621 TEXT, payload622 TEXT, payload623 TEXT, payload624 TEXT, payload625 TEXT, payload626 TEXT, payload627 TEXT, payload628 TEXT, payload629 TEXT, payload630 TEXT, payload631 TEXT, payload632 TEXT, payload633 TEXT, payload634 TEXT, payload635 TEXT, payload636 TEXT, payload637 TEXT, payload638 TEXT, payload639 TEXT, payload640 TEXT, payload641 TEXT, payload642 TEXT, payload643 TEXT, payload644 TEXT, payload645 TEXT, payload646 TEXT, payload647 TEXT, payload648 TEXT, payload649 TEXT, payload650 TEXT, payload651 TEXT, payload652 TEXT, payload653 TEXT, payload654 TEXT, payload655 TEXT, payload656 TEXT, payload657 TEXT, payload658 TEXT, payload659 TEXT, payload660 TEXT, payload661 TEXT, payload662 TEXT, payload663 TEXT, payload664 TEXT, payload665 TEXT, payload666 TEXT, payload667 TEXT, payload668 TEXT, payload669 TEXT, payload670 TEXT, payload671 TEXT, payload672 TEXT, payload673 TEXT, payload674 TEXT, payload675 TEXT, payload676 TEXT, payload677 TEXT, payload678 TEXT, payload679 TEXT, payload680 TEXT, payload681 TEXT, payload682 TEXT, payload683 TEXT, payload684 TEXT, payload685 TEXT, payload686 TEXT, payload687 TEXT, payload688 TEXT, payload689 TEXT, payload690 TEXT, payload691 TEXT, payload692 TEXT, payload693 TEXT, payload694 TEXT, payload695 TEXT, payload696 TEXT, payload697 TEXT, payload698 TEXT, payload699 TEXT, payload700 TEXT, payload701 TEXT, payload702 TEXT, payload703 TEXT, payload704 TEXT, payload705 TEXT, payload706 TEXT, payload707 TEXT, payload708 TEXT, payload709 TEXT, payload710 TEXT, payload711 TEXT, payload712 TEXT, payload713 TEXT, payload714 TEXT, payload715 TEXT, payload716 TEXT, payload717 TEXT, payload718 TEXT, payload719 TEXT, payload720 TEXT, payload721 TEXT, payload722 TEXT, payload723 TEXT, payload724 TEXT, payload725 TEXT, payload726 TEXT, payload727 TEXT, payload728 TEXT, payload729 TEXT, payload730 TEXT, payload731 TEXT, payload732 TEXT, payload733 TEXT, payload734 TEXT, payload735 TEXT, payload736 TEXT, payload737 TEXT, payload738 TEXT, payload739 TEXT, payload740 TEXT, payload741 TEXT, payload742 TEXT, payload743 TEXT, payload744 TEXT, payload745 TEXT, payload746 TEXT, payload747 TEXT, payload748 TEXT, payload749 TEXT, payload750 TEXT, payload751 TEXT, payload752 TEXT, payload753 TEXT, payload754 TEXT, payload755 TEXT, payload756 TEXT, payload757 TEXT, payload758 TEXT, payload759 TEXT, payload760 TEXT, payload761 TEXT, payload762 TEXT, payload763 TEXT, payload764 TEXT, payload765 TEXT, payload766 TEXT, payload767 TEXT, payload768 TEXT, payload769 TEXT, payload770 TEXT, payload771 TEXT, payload772 TEXT, payload773 TEXT, payload774 TEXT, payload775 TEXT, payload776 TEXT, payload777 TEXT, payload778 TEXT, payload779 TEXT, payload780 TEXT, payload781 TEXT, payload782 TEXT, payload783 TEXT, payload784 TEXT, payload785 TEXT, payload786 TEXT, payload787 TEXT, payload788 TEXT, payload789 TEXT, payload790 TEXT, payload791 TEXT, payload792 TEXT, payload793 TEXT, payload794 TEXT, payload795 TEXT, payload796 TEXT, payload797 TEXT, payload798 TEXT, payload799 TEXT, payload800 TEXT, payload801 TEXT, payload802 TEXT, payload803 TEXT, payload804 TEXT, payload805 TEXT, payload806 TEXT, payload807 TEXT, payload808 TEXT, payload809 TEXT, payload810 TEXT, payload811 TEXT, payload812 TEXT, payload813 TEXT, payload814 TEXT, payload815 TEXT, payload816 TEXT, payload817 TEXT, payload818 TEXT, payload819 TEXT, payload820 TEXT, payload821 TEXT, payload822 TEXT, payload823 TEXT, payload824 TEXT, payload825 TEXT, payload826 TEXT, payload827 TEXT, payload828 TEXT, payload829 TEXT, payload830 TEXT, payload831 TEXT, payload832 TEXT, payload833 TEXT, payload834 TEXT, payload835 TEXT, payload836 TEXT, payload837 TEXT, payload838 TEXT, payload839 TEXT, payload840 TEXT, payload841 TEXT, payload842 TEXT, payload843 TEXT, payload844 TEXT, payload845 TEXT, payload846 TEXT, payload847 TEXT, payload848 TEXT, payload849 TEXT, payload850 TEXT, payload851 TEXT, payload852 TEXT, payload853 TEXT, payload854 TEXT, payload855 TEXT, payload856 TEXT, payload857 TEXT, payload858 TEXT, payload859 TEXT, payload860 TEXT, payload861 TEXT, payload862 TEXT, payload863 TEXT, payload864 TEXT, payload865 TEXT, payload866 TEXT, payload867 TEXT, payload868 TEXT, payload869 TEXT, payload870 TEXT, payload871 TEXT, payload872 TEXT, payload873 TEXT, payload874 TEXT, payload875 TEXT, payload876 TEXT, payload877 TEXT, payload878 TEXT, payload879 TEXT, payload880 TEXT, payload881 TEXT, payload882 TEXT, payload883 TEXT, payload884 TEXT, payload885 TEXT, payload886 TEXT, payload887 TEXT, payload888 TEXT, payload889 TEXT, payload890 TEXT, payload891 TEXT, payload892 TEXT, payload893 TEXT, payload894 TEXT, payload895 TEXT, payload896 TEXT, payload897 TEXT, payload898 TEXT, payload899 TEXT, payload900 TEXT, payload901 TEXT, payload902 TEXT, payload903 TEXT, payload904 TEXT, payload905 TEXT, payload906 TEXT, payload907 TEXT, payload908 TEXT, payload909 TEXT, payload910 TEXT, payload911 TEXT, payload912 TEXT, payload913 TEXT, payload914 TEXT, payload915 TEXT, payload916 TEXT, payload917 TEXT, payload918 TEXT, payload919 TEXT, payload920 TEXT, payload921 TEXT, payload922 TEXT, payload923 TEXT, payload924 TEXT, payload925 TEXT, payload926 TEXT, payload927 TEXT, payload928 TEXT, payload929 TEXT, payload930 TEXT, payload931 TEXT, payload932 TEXT, payload933 TEXT, payload934 TEXT, payload935 TEXT, payload936 TEXT, payload937 TEXT, payload938 TEXT, payload939 TEXT, payload940 TEXT, payload941 TEXT, payload942 TEXT, payload943 TEXT, payload944 TEXT, payload945 TEXT, payload946 TEXT, payload947 TEXT, payload948 TEXT, payload949 TEXT, payload950 TEXT, payload951 TEXT, payload952 TEXT, payload953 TEXT, payload954 TEXT, payload955 TEXT, payload956 TEXT, payload957 TEXT, payload958 TEXT, payload959 TEXT, payload960 TEXT, payload961 TEXT, payload962 TEXT, payload963 TEXT, payload964 TEXT, payload965 TEXT, payload966 TEXT, payload967 TEXT, payload968 TEXT, payload969 TEXT, payload970 TEXT, payload971 TEXT, payload972 TEXT, payload973 TEXT, payload974 TEXT, payload975 TEXT, payload976 TEXT, payload977 TEXT, payload978 TEXT, payload979 TEXT, payload980 TEXT, payload981 TEXT, payload982 TEXT, payload983 TEXT, payload984 TEXT, payload985 TEXT, payload986 TEXT, payload987 TEXT, payload988 TEXT, payload989 TEXT, payload990 TEXT, payload991 TEXT, payload992 TEXT, payload993 TEXT, payload994 TEXT, payload995 TEXT, payload996 TEXT, payload997 TEXT, payload998 TEXT, payload999 TEXT, payload1000 TEXT, PRIMARY KEY(dept_id ASC, emp_id ASC)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1k_col; + + loadRules: + - table: THRPT_MVI_1k_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 1000 + util: RandomAString + params: [1, 1] + + executeRules: + - workload: THRPT_multivalue_insert_1Kcols + run: + - name: THRPT_multivalue_insert_1Kcols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1k_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 1000 + params: [1, 1] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1cols.yaml new file mode 100644 index 000000000..6a088ff84 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_1cols.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1_col; + - CREATE TABLE THRPT_MVI_1_col (dept_id INT, emp_id INT, payload TEXT, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1_col; + + loadRules: + - table: THRPT_MVI_1_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + util: RandomAString + params: [1000, 1000] + + executeRules: + - workload: THRPT_multivalue_insert_1cols + run: + - name: THRPT_multivalue_insert_1cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1_col VALUES [(?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [1000, 1000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_500cols.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_500cols.yaml new file mode 100644 index 000000000..2656f2c26 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_cols/THRPT_multivalue_insert_500cols.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 32 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_500_col; + - CREATE TABLE THRPT_MVI_500_col (dept_id INT, emp_id INT, payload1 TEXT, payload2 TEXT, payload3 TEXT, payload4 TEXT, payload5 TEXT, payload6 TEXT, payload7 TEXT, payload8 TEXT, payload9 TEXT, payload10 TEXT, payload11 TEXT, payload12 TEXT, payload13 TEXT, payload14 TEXT, payload15 TEXT, payload16 TEXT, payload17 TEXT, payload18 TEXT, payload19 TEXT, payload20 TEXT, payload21 TEXT, payload22 TEXT, payload23 TEXT, payload24 TEXT, payload25 TEXT, payload26 TEXT, payload27 TEXT, payload28 TEXT, payload29 TEXT, payload30 TEXT, payload31 TEXT, payload32 TEXT, payload33 TEXT, payload34 TEXT, payload35 TEXT, payload36 TEXT, payload37 TEXT, payload38 TEXT, payload39 TEXT, payload40 TEXT, payload41 TEXT, payload42 TEXT, payload43 TEXT, payload44 TEXT, payload45 TEXT, payload46 TEXT, payload47 TEXT, payload48 TEXT, payload49 TEXT, payload50 TEXT, payload51 TEXT, payload52 TEXT, payload53 TEXT, payload54 TEXT, payload55 TEXT, payload56 TEXT, payload57 TEXT, payload58 TEXT, payload59 TEXT, payload60 TEXT, payload61 TEXT, payload62 TEXT, payload63 TEXT, payload64 TEXT, payload65 TEXT, payload66 TEXT, payload67 TEXT, payload68 TEXT, payload69 TEXT, payload70 TEXT, payload71 TEXT, payload72 TEXT, payload73 TEXT, payload74 TEXT, payload75 TEXT, payload76 TEXT, payload77 TEXT, payload78 TEXT, payload79 TEXT, payload80 TEXT, payload81 TEXT, payload82 TEXT, payload83 TEXT, payload84 TEXT, payload85 TEXT, payload86 TEXT, payload87 TEXT, payload88 TEXT, payload89 TEXT, payload90 TEXT, payload91 TEXT, payload92 TEXT, payload93 TEXT, payload94 TEXT, payload95 TEXT, payload96 TEXT, payload97 TEXT, payload98 TEXT, payload99 TEXT, payload100 TEXT, payload101 TEXT, payload102 TEXT, payload103 TEXT, payload104 TEXT, payload105 TEXT, payload106 TEXT, payload107 TEXT, payload108 TEXT, payload109 TEXT, payload110 TEXT, payload111 TEXT, payload112 TEXT, payload113 TEXT, payload114 TEXT, payload115 TEXT, payload116 TEXT, payload117 TEXT, payload118 TEXT, payload119 TEXT, payload120 TEXT, payload121 TEXT, payload122 TEXT, payload123 TEXT, payload124 TEXT, payload125 TEXT, payload126 TEXT, payload127 TEXT, payload128 TEXT, payload129 TEXT, payload130 TEXT, payload131 TEXT, payload132 TEXT, payload133 TEXT, payload134 TEXT, payload135 TEXT, payload136 TEXT, payload137 TEXT, payload138 TEXT, payload139 TEXT, payload140 TEXT, payload141 TEXT, payload142 TEXT, payload143 TEXT, payload144 TEXT, payload145 TEXT, payload146 TEXT, payload147 TEXT, payload148 TEXT, payload149 TEXT, payload150 TEXT, payload151 TEXT, payload152 TEXT, payload153 TEXT, payload154 TEXT, payload155 TEXT, payload156 TEXT, payload157 TEXT, payload158 TEXT, payload159 TEXT, payload160 TEXT, payload161 TEXT, payload162 TEXT, payload163 TEXT, payload164 TEXT, payload165 TEXT, payload166 TEXT, payload167 TEXT, payload168 TEXT, payload169 TEXT, payload170 TEXT, payload171 TEXT, payload172 TEXT, payload173 TEXT, payload174 TEXT, payload175 TEXT, payload176 TEXT, payload177 TEXT, payload178 TEXT, payload179 TEXT, payload180 TEXT, payload181 TEXT, payload182 TEXT, payload183 TEXT, payload184 TEXT, payload185 TEXT, payload186 TEXT, payload187 TEXT, payload188 TEXT, payload189 TEXT, payload190 TEXT, payload191 TEXT, payload192 TEXT, payload193 TEXT, payload194 TEXT, payload195 TEXT, payload196 TEXT, payload197 TEXT, payload198 TEXT, payload199 TEXT, payload200 TEXT, payload201 TEXT, payload202 TEXT, payload203 TEXT, payload204 TEXT, payload205 TEXT, payload206 TEXT, payload207 TEXT, payload208 TEXT, payload209 TEXT, payload210 TEXT, payload211 TEXT, payload212 TEXT, payload213 TEXT, payload214 TEXT, payload215 TEXT, payload216 TEXT, payload217 TEXT, payload218 TEXT, payload219 TEXT, payload220 TEXT, payload221 TEXT, payload222 TEXT, payload223 TEXT, payload224 TEXT, payload225 TEXT, payload226 TEXT, payload227 TEXT, payload228 TEXT, payload229 TEXT, payload230 TEXT, payload231 TEXT, payload232 TEXT, payload233 TEXT, payload234 TEXT, payload235 TEXT, payload236 TEXT, payload237 TEXT, payload238 TEXT, payload239 TEXT, payload240 TEXT, payload241 TEXT, payload242 TEXT, payload243 TEXT, payload244 TEXT, payload245 TEXT, payload246 TEXT, payload247 TEXT, payload248 TEXT, payload249 TEXT, payload250 TEXT, payload251 TEXT, payload252 TEXT, payload253 TEXT, payload254 TEXT, payload255 TEXT, payload256 TEXT, payload257 TEXT, payload258 TEXT, payload259 TEXT, payload260 TEXT, payload261 TEXT, payload262 TEXT, payload263 TEXT, payload264 TEXT, payload265 TEXT, payload266 TEXT, payload267 TEXT, payload268 TEXT, payload269 TEXT, payload270 TEXT, payload271 TEXT, payload272 TEXT, payload273 TEXT, payload274 TEXT, payload275 TEXT, payload276 TEXT, payload277 TEXT, payload278 TEXT, payload279 TEXT, payload280 TEXT, payload281 TEXT, payload282 TEXT, payload283 TEXT, payload284 TEXT, payload285 TEXT, payload286 TEXT, payload287 TEXT, payload288 TEXT, payload289 TEXT, payload290 TEXT, payload291 TEXT, payload292 TEXT, payload293 TEXT, payload294 TEXT, payload295 TEXT, payload296 TEXT, payload297 TEXT, payload298 TEXT, payload299 TEXT, payload300 TEXT, payload301 TEXT, payload302 TEXT, payload303 TEXT, payload304 TEXT, payload305 TEXT, payload306 TEXT, payload307 TEXT, payload308 TEXT, payload309 TEXT, payload310 TEXT, payload311 TEXT, payload312 TEXT, payload313 TEXT, payload314 TEXT, payload315 TEXT, payload316 TEXT, payload317 TEXT, payload318 TEXT, payload319 TEXT, payload320 TEXT, payload321 TEXT, payload322 TEXT, payload323 TEXT, payload324 TEXT, payload325 TEXT, payload326 TEXT, payload327 TEXT, payload328 TEXT, payload329 TEXT, payload330 TEXT, payload331 TEXT, payload332 TEXT, payload333 TEXT, payload334 TEXT, payload335 TEXT, payload336 TEXT, payload337 TEXT, payload338 TEXT, payload339 TEXT, payload340 TEXT, payload341 TEXT, payload342 TEXT, payload343 TEXT, payload344 TEXT, payload345 TEXT, payload346 TEXT, payload347 TEXT, payload348 TEXT, payload349 TEXT, payload350 TEXT, payload351 TEXT, payload352 TEXT, payload353 TEXT, payload354 TEXT, payload355 TEXT, payload356 TEXT, payload357 TEXT, payload358 TEXT, payload359 TEXT, payload360 TEXT, payload361 TEXT, payload362 TEXT, payload363 TEXT, payload364 TEXT, payload365 TEXT, payload366 TEXT, payload367 TEXT, payload368 TEXT, payload369 TEXT, payload370 TEXT, payload371 TEXT, payload372 TEXT, payload373 TEXT, payload374 TEXT, payload375 TEXT, payload376 TEXT, payload377 TEXT, payload378 TEXT, payload379 TEXT, payload380 TEXT, payload381 TEXT, payload382 TEXT, payload383 TEXT, payload384 TEXT, payload385 TEXT, payload386 TEXT, payload387 TEXT, payload388 TEXT, payload389 TEXT, payload390 TEXT, payload391 TEXT, payload392 TEXT, payload393 TEXT, payload394 TEXT, payload395 TEXT, payload396 TEXT, payload397 TEXT, payload398 TEXT, payload399 TEXT, payload400 TEXT, payload401 TEXT, payload402 TEXT, payload403 TEXT, payload404 TEXT, payload405 TEXT, payload406 TEXT, payload407 TEXT, payload408 TEXT, payload409 TEXT, payload410 TEXT, payload411 TEXT, payload412 TEXT, payload413 TEXT, payload414 TEXT, payload415 TEXT, payload416 TEXT, payload417 TEXT, payload418 TEXT, payload419 TEXT, payload420 TEXT, payload421 TEXT, payload422 TEXT, payload423 TEXT, payload424 TEXT, payload425 TEXT, payload426 TEXT, payload427 TEXT, payload428 TEXT, payload429 TEXT, payload430 TEXT, payload431 TEXT, payload432 TEXT, payload433 TEXT, payload434 TEXT, payload435 TEXT, payload436 TEXT, payload437 TEXT, payload438 TEXT, payload439 TEXT, payload440 TEXT, payload441 TEXT, payload442 TEXT, payload443 TEXT, payload444 TEXT, payload445 TEXT, payload446 TEXT, payload447 TEXT, payload448 TEXT, payload449 TEXT, payload450 TEXT, payload451 TEXT, payload452 TEXT, payload453 TEXT, payload454 TEXT, payload455 TEXT, payload456 TEXT, payload457 TEXT, payload458 TEXT, payload459 TEXT, payload460 TEXT, payload461 TEXT, payload462 TEXT, payload463 TEXT, payload464 TEXT, payload465 TEXT, payload466 TEXT, payload467 TEXT, payload468 TEXT, payload469 TEXT, payload470 TEXT, payload471 TEXT, payload472 TEXT, payload473 TEXT, payload474 TEXT, payload475 TEXT, payload476 TEXT, payload477 TEXT, payload478 TEXT, payload479 TEXT, payload480 TEXT, payload481 TEXT, payload482 TEXT, payload483 TEXT, payload484 TEXT, payload485 TEXT, payload486 TEXT, payload487 TEXT, payload488 TEXT, payload489 TEXT, payload490 TEXT, payload491 TEXT, payload492 TEXT, payload493 TEXT, payload494 TEXT, payload495 TEXT, payload496 TEXT, payload497 TEXT, payload498 TEXT, payload499 TEXT, payload500 TEXT, PRIMARY KEY(dept_id ASC, emp_id ASC)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_500_col; + + loadRules: + - table: THRPT_MVI_500_col + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: payload + count: 500 + util: RandomAString + params: [2, 2] + + executeRules: + - workload: THRPT_multivalue_insert_500cols + run: + - name: THRPT_multivalue_insert_500cols + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_500_col VALUES [(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + count: 500 + params: [2, 2] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_100KB_row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_100KB_row.yaml new file mode 100644 index 000000000..9af63bab1 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_100KB_row.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 64 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_100KB_row_size; + - CREATE TABLE THRPT_MVI_100KB_row_size (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_100KB_row_size; + + loadRules: + - table: THRPT_MVI_100KB_row_size + rows: 100000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 100000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [51200, 51200] + - name: details + util: RandomAString + params: [51200, 51200] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_100KB_row + run: + - name: THRPT_multivalue_insert_100KB_row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_100KB_row_size VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [100001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [51200, 51200] + - util: RandomAString + params: [51200, 51200] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_10KB_row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_10KB_row.yaml new file mode 100644 index 000000000..b21855cb6 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_10KB_row.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_10KB_row_size; + - CREATE TABLE THRPT_MVI_10KB_row_size (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_10KB_row_size; + + loadRules: + - table: THRPT_MVI_10KB_row_size + rows: 1000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 1000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [5120, 5120] + - name: details + util: RandomAString + params: [5120, 5120] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_10KB_row + run: + - name: THRPT_multivalue_insert_10KB_row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_10KB_row_size VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [1000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [5120, 5120] + - util: RandomAString + params: [5120, 5120] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_1MB_row.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_1MB_row.yaml new file mode 100644 index 000000000..899aacb92 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_MVI_varying_row_size/THRPT_multivalue_insert_1MB_row.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 8 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_MVI_1MB_row_size; + - CREATE TABLE THRPT_MVI_1MB_row_size (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_MVI_1MB_row_size; + + loadRules: + - table: THRPT_MVI_1MB_row_size + rows: 10000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512000, 512000] + - name: details + util: RandomAString + params: [512000, 512000] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_multivalue_insert_1MB_row + run: + - name: THRPT_multivalue_insert_1MB_row + weight: 100 + queries: + - query: INSERT INTO THRPT_MVI_1MB_row_size VALUES [(?,?,?,?,?,?,?,?,?,?,?)][pattern_count] + pattern_count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512000, 512000] + - util: RandomAString + params: [512000, 512000] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_100_rows.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_100_rows.yaml new file mode 100644 index 000000000..235721904 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_100_rows.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS THRPT_100_single_inserts; + - CREATE TABLE THRPT_100_single_inserts (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_100_single_inserts; + + loadRules: + - table: THRPT_100_single_inserts + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_single_inserts_100_rows + run: + - name: THRPT_single_inserts_100_rows + weight: 100 + queries: + - query: INSERT INTO THRPT_100_single_inserts VALUES (?,?,?,?,?,?,?,?,?,?,?); + count: 100 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_10_rows.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_10_rows.yaml new file mode 100644 index 000000000..9eb6c0e9c --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_10_rows.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS THRPT_10_single_inserts; + - CREATE TABLE THRPT_10_single_inserts (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_10_single_inserts; + + loadRules: + - table: THRPT_10_single_inserts + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_single_inserts_10_rows + run: + - name: THRPT_single_inserts_10_rows + weight: 100 + queries: + - query: INSERT INTO THRPT_10_single_inserts VALUES (?,?,?,?,?,?,?,?,?,?,?); + count: 10 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_1K_rows.yaml b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_1K_rows.yaml new file mode 100644 index 000000000..8b43beb36 --- /dev/null +++ b/config/yugabyte/regression_pipelines/throughput_write_workloads/yugabyte/THRPT_single_insert_varying_txn_size/THRPT_single_inserts_1K_rows.yaml @@ -0,0 +1,100 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +targetCPU: 80 +toleranceCPU: 5 +optimalThreads: true +samplingTime: 180 +useThroughputThreshold: true +restingTimeSecs: 360 +works: + work: + time_secs: 900 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS THRPT_1K_single_inserts; + - CREATE TABLE THRPT_1K_single_inserts (dept_id INT, emp_id INT, name VARCHAR(10), email VARCHAR(20), salary FLOAT, hire_date DATE, department VARCHAR(20), payload TEXT, details TEXT, is_active BOOLEAN, last_login TIMESTAMP, primary key(dept_id asc, emp_id asc)) SPLIT AT VALUES ((4), (7)); + cleanup: + - DROP TABLE IF EXISTS THRPT_1K_single_inserts; + + loadRules: + - table: THRPT_1K_single_inserts + rows: 10000000 + columns: + - name: dept_id + util: RandomUniqueCyclicIntGen + params: [1,9,1] + - name: emp_id + util: PrimaryIntGenThroughput + params: [1, 10000000] + - name: name + util: RandomAString + params: [10, 10] + - name: email + util: RandomAString + params: [20, 20] + - name: salary + util: RandomFloat + params: [1, 100000, 2] + - name: hire_date + util: RandomDate + params: [2000, 2026] + - name: department + util: RandomAString + params: [20, 20] + - name: payload + util: RandomAString + params: [512, 512] + - name: details + util: RandomAString + params: [512, 512] + - name: is_active + util: RandomBoolean + - name: last_login + util: RandomTimestamp + params: [10000000] + + executeRules: + - workload: THRPT_single_inserts_1K_rows + run: + - name: THRPT_single_inserts_1K_rows + weight: 100 + queries: + - query: INSERT INTO THRPT_1K_single_inserts VALUES (?,?,?,?,?,?,?,?,?,?,?); + count: 1000 + bindings: + - util: RandomUniqueCyclicIntGen + params: [1,9,1] + - util: PrimaryIntGenThroughput + params: [10000001, 2147483646] + - util: RandomAString + params: [10, 10] + - util: RandomAString + params: [20, 20] + - util: RandomFloat + params: [1, 100000, 2] + - util: RandomDate + params: [2000, 2026] + - util: RandomAString + params: [20, 20] + - util: RandomAString + params: [512, 512] + - util: RandomAString + params: [512, 512] + - util: RandomBoolean + - util: RandomTimestamp + params: [10000000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_1536d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_1536d_single_indexed.yaml new file mode 100644 index 000000000..e49d4c0dc --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_1536d_single_indexed.yaml @@ -0,0 +1,56 @@ +# Vector Delete - 1536D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=delete, deletetype=single, indexed=true + + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_1536d_indexed; + - CREATE TABLE vector_delete_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_delete_1536d_indexed USING hnsw (embedding vector_ip_ops) + WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_1536d_indexed; + loadRules: + - table: vector_delete_1536d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + executeRules: + - workload: delete_1536d_single_indexed + customTags: dim=1536,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_1536d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_512d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_512d_single_indexed.yaml new file mode 100644 index 000000000..07d5d7302 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_512d_single_indexed.yaml @@ -0,0 +1,55 @@ +# Vector Delete - 512D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=delete, deletetype=single, indexed=true + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_512d_indexed; + - CREATE TABLE vector_delete_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_delete_512d_indexed USING hnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_512d_indexed; + loadRules: + - table: vector_delete_512d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: delete_512d_single_indexed + customTags: dim=512,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_512d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_768d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_768d_single_indexed.yaml new file mode 100644 index 000000000..1e8f28505 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/delete_768d_single_indexed.yaml @@ -0,0 +1,55 @@ +# Vector Delete - 768D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=delete, deletetype=single, indexed=true + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_768d_indexed; + - CREATE TABLE vector_delete_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_delete_768d_indexed USING hnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_768d_indexed; + loadRules: + - table: vector_delete_768d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: delete_768d_single_indexed + customTags: dim=768,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_768d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_1536d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_1536d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..849f8ef49 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_1536d_indexed_m16_ef200.yaml @@ -0,0 +1,57 @@ +# Vector Insert - 1536D, with HNSW index (m=16, ef_construction=200), Inner Product distance +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=insert, indexed=true, m=16, ef_construction=200, distance=ip + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_1536d_indexed; + - CREATE TABLE vector_insert_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_insert_1536d_indexed USING hnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_1536d_indexed; + loadRules: + - table: vector_insert_1536d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: insert_1536d_indexed_m16_ef200 + customTags: dim=1536,operation=insert,indexed=true,m=16,ef_construction=200,distance=ip + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_1536d_indexed (id, embedding) VALUES (?, ?::vector(1536)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_512d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_512d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..460b42b11 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_512d_indexed_m16_ef200.yaml @@ -0,0 +1,57 @@ +# Vector Insert - 512D, with HNSW index (m=16, ef_construction=200) +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=insert, indexed=true, m=16, ef_construction=200 + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_512d_indexed; + - CREATE TABLE vector_insert_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_insert_512d_indexed USING hnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_512d_indexed; + loadRules: + - table: vector_insert_512d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: insert_512d_indexed_m16_ef200 + customTags: dim=512,operation=insert,indexed=true,m=16,ef_construction=200 + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_512d_indexed (id, embedding) VALUES (?, ?::vector(512)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_768d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_768d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..1c7ab6369 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/insert_768d_indexed_m16_ef200.yaml @@ -0,0 +1,57 @@ +# Vector Insert - 768D, with HNSW index (m=16, ef_construction=200), Cosine distance +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=insert, indexed=true, m=16, ef_construction=200, distance=cosine + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_768d_indexed; + - CREATE TABLE vector_insert_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_insert_768d_indexed USING hnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_768d_indexed; + loadRules: + - table: vector_insert_768d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: insert_768d_indexed_m16_ef200 + customTags: dim=768,operation=insert,indexed=true,m=16,ef_construction=200,distance=cosine + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_768d_indexed (id, embedding) VALUES (?, ?::vector(768)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_128d_100k_ip_allfilters.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_128d_100k_ip_allfilters.yaml new file mode 100644 index 000000000..056ac0835 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_128d_100k_ip_allfilters.yaml @@ -0,0 +1,100 @@ +# Vector Search - 128D, 100K vectors, Inner Product distance, All Filter Types +# Following VectorDBBench naming conventions +# Configuration: dimension=128, magnitude=100k, distance=ip, filters=all +# Tests: nofilter, low_filter_1p (1% filtered out), high_filter_99p (99% filtered out) + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_128d_100k; + - CREATE TABLE vector_search_128d_100k (id bigint PRIMARY KEY, embedding vector(128), metadata text, category int); + - CREATE INDEX ON vector_search_128d_100k USING hnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + - CREATE INDEX ON vector_search_128d_100k (category); + cleanup: + - DROP TABLE IF EXISTS vector_search_128d_100k; + loadRules: + - table: vector_search_128d_100k + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: RandomFloatArrayGen + params: [128, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 100] + + executeRules: + # Test 1: No Filter - Pure ANN search + - workload: search_128d_100k_ip_nofilter + customTags: dim=128,magnitude=100k,distance=ip,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_nofilter + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + + # Test 2: Low Filter 1P - 1% of data filtered out (~99% eligible, easy search) + - workload: search_128d_100k_ip_low_filter_1p + customTags: dim=128,magnitude=100k,distance=ip,filter=low_1pct_out_1p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_low_filter_1p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k WHERE category <= ? ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: SeededRandomNumber + params: [95, 100, 99999] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + + # Test 3: High Filter 99P - 99% of data filtered out (~1% eligible, hard search) + - workload: search_128d_100k_ip_high_filter_99p + customTags: dim=128,magnitude=100k,distance=ip,filter=high_99pct_out_99p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_high_filter_99p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k WHERE category = ? ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: RandomNumber + params: [1, 100] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_1536d_50k_cosine_nofilter.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_1536d_50k_cosine_nofilter.yaml new file mode 100644 index 000000000..ea4c977fd --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_1536d_50k_cosine_nofilter.yaml @@ -0,0 +1,63 @@ +# Vector Search - 1536D, 50K vectors, Cosine distance, No Filter (OpenAI embeddings) +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, magnitude=50k, filter=none, distance=cosine, ef_construction=200, m=16 + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_1536d_50k; + - CREATE TABLE vector_search_1536d_50k (id bigint PRIMARY KEY, embedding vector(1536), metadata text, category int); + - CREATE INDEX ON vector_search_1536d_50k USING hnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_search_1536d_50k; + loadRules: + - table: vector_search_1536d_50k + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: RandomFloatArrayGen + params: [1536, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 10] + + executeRules: + - workload: search_1536d_50k_cosine_nofilter + customTags: dim=1536,magnitude=50k,distance=cosine,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_cosine + weight: 100 + queries: + - query: SELECT id, metadata, 1 - (embedding <=> ?::vector(1536)) as similarity FROM vector_search_1536d_50k ORDER BY embedding <=> ?::vector(1536) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 99999] + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 99999] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_512d_100k_l2_allfilters.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_512d_100k_l2_allfilters.yaml new file mode 100644 index 000000000..132492c3e --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/search_512d_100k_l2_allfilters.yaml @@ -0,0 +1,100 @@ +# Vector Search - 512D, 100K vectors, L2 distance, All Filter Types +# Following VectorDBBench naming conventions +# Configuration: dimension=512, magnitude=100k, distance=l2, filters=all +# Tests: nofilter, low_filter_1p (1% filtered out), high_filter_99p (99% filtered out) + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_512d_100k; + - CREATE TABLE vector_search_512d_100k (id bigint PRIMARY KEY, embedding vector(512), metadata text, category int); + - CREATE INDEX ON vector_search_512d_100k USING hnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + - CREATE INDEX ON vector_search_512d_100k (category); + cleanup: + - DROP TABLE IF EXISTS vector_search_512d_100k; + loadRules: + - table: vector_search_512d_100k + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: RandomFloatArrayGen + params: [512, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 100] + + executeRules: + # Test 1: No Filter - Pure ANN search + - workload: search_512d_100k_l2_nofilter + customTags: dim=512,magnitude=100k,distance=l2,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_nofilter + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + + # Test 2: Low Filter 1P - 1% of data filtered out (~99% eligible, easy search) + - workload: search_512d_100k_l2_low_filter_1p + customTags: dim=512,magnitude=100k,distance=l2,filter=low_1pct_out_1p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_low_filter_1p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k WHERE category <= ? ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: SeededRandomNumber + params: [95, 100, 99999] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + + # Test 3: High Filter 99P - 99% of data filtered out (~1% eligible, hard search) + - workload: search_512d_100k_l2_high_filter_99p + customTags: dim=512,magnitude=100k,distance=l2,filter=high_99pct_out_99p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_high_filter_99p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k WHERE category = ? ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: RandomNumber + params: [1, 100] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_1536d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_1536d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..d7354b234 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_1536d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,57 @@ +# Vector Update - 1536D, update embedding with HNSW index (Inner Product distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=ip + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_1536d_indexed; + - CREATE TABLE vector_update_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_update_1536d_indexed USING hnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_1536d_indexed; + loadRules: + - table: vector_update_1536d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: update_1536d_embedding_indexed_m16_ef200 + customTags: dim=1536,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=ip + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_1536d_indexed SET embedding = ?::vector(1536) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_512d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_512d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..6f44bc31b --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_512d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,57 @@ +# Vector Update - 512D, update embedding with HNSW index (L2 distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=l2 + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_512d_indexed; + - CREATE TABLE vector_update_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_update_512d_indexed USING hnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_512d_indexed; + loadRules: + - table: vector_update_512d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: update_512d_embedding_indexed_m16_ef200 + customTags: dim=512,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=l2 + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_512d_indexed SET embedding = ?::vector(512) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_768d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_768d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..8847af2c9 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/postgres/update_768d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,57 @@ +# Vector Update - 768D, update embedding with HNSW index (Cosine distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=cosine + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_768d_indexed; + - CREATE TABLE vector_update_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_update_768d_indexed USING hnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_768d_indexed; + loadRules: + - table: vector_update_768d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: update_768d_embedding_indexed_m16_ef200 + customTags: dim=768,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=cosine + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_768d_indexed SET embedding = ?::vector(768) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [768, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_1536d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_1536d_single_indexed.yaml new file mode 100644 index 000000000..ea21e5f3c --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_1536d_single_indexed.yaml @@ -0,0 +1,56 @@ +# Vector Delete - 1536D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=delete, deletetype=single, indexed=true + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_1536d_indexed; + - CREATE TABLE vector_delete_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_delete_1536d_indexed USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_1536d_indexed; + loadRules: + - table: vector_delete_1536d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: delete_1536d_single_indexed + customTags: dim=1536,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_1536d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_512d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_512d_single_indexed.yaml new file mode 100644 index 000000000..728995291 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_512d_single_indexed.yaml @@ -0,0 +1,56 @@ +# Vector Delete - 512D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=delete, deletetype=single, indexed=true + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_512d_indexed; + - CREATE TABLE vector_delete_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_delete_512d_indexed USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_512d_indexed; + loadRules: + - table: vector_delete_512d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: delete_512d_single_indexed + customTags: dim=512,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_512d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_768d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_768d_single_indexed.yaml new file mode 100644 index 000000000..c50bb7ec5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/delete_768d_single_indexed.yaml @@ -0,0 +1,56 @@ +# Vector Delete - 768D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=delete, deletetype=single, indexed=true + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_768d_indexed; + - CREATE TABLE vector_delete_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_delete_768d_indexed USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_768d_indexed; + loadRules: + - table: vector_delete_768d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: delete_768d_single_indexed + customTags: dim=768,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_768d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_1536d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_1536d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..813a8a79a --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_1536d_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Insert - 1536D, with HNSW index (m=16, ef_construction=200), Inner Product distance +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=insert, indexed=true, m=16, ef_construction=200, distance=ip + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_1536d_indexed; + - CREATE TABLE vector_insert_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_insert_1536d_indexed USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_1536d_indexed; + loadRules: + - table: vector_insert_1536d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: insert_1536d_indexed_m16_ef200 + customTags: dim=1536,operation=insert,indexed=true,m=16,ef_construction=200,distance=ip + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_1536d_indexed (id, embedding) VALUES (?, ?::vector(1536)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_512d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_512d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..5a70ad234 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_512d_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Insert - 512D, with HNSW index (m=16, ef_construction=200) +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=insert, indexed=true, m=16, ef_construction=200 + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_512d_indexed; + - CREATE TABLE vector_insert_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_insert_512d_indexed USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_512d_indexed; + loadRules: + - table: vector_insert_512d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: insert_512d_indexed_m16_ef200 + customTags: dim=512,operation=insert,indexed=true,m=16,ef_construction=200 + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_512d_indexed (id, embedding) VALUES (?, ?::vector(512)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_768d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_768d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..0601150d3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/insert_768d_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Insert - 768D, with HNSW index (m=16, ef_construction=200), Cosine distance +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=insert, indexed=true, m=16, ef_construction=200, distance=cosine + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_768d_indexed; + - CREATE TABLE vector_insert_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_insert_768d_indexed USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_768d_indexed; + loadRules: + - table: vector_insert_768d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: insert_768d_indexed_m16_ef200 + customTags: dim=768,operation=insert,indexed=true,m=16,ef_construction=200,distance=cosine + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_768d_indexed (id, embedding) VALUES (?, ?::vector(768)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_128d_100k_ip_allfilters.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_128d_100k_ip_allfilters.yaml new file mode 100644 index 000000000..4042f32b2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_128d_100k_ip_allfilters.yaml @@ -0,0 +1,101 @@ +# Vector Search - 128D, 100K vectors, Inner Product distance, All Filter Types +# Following VectorDBBench naming conventions +# Configuration: dimension=128, magnitude=100k, distance=ip, filters=all +# Tests: nofilter, low_filter_1p (1% filtered out), high_filter_99p (99% filtered out) + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_128d_100k; + - CREATE TABLE vector_search_128d_100k (id bigint PRIMARY KEY, embedding vector(128), metadata text, category int); + - CREATE INDEX ON vector_search_128d_100k USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + - CREATE INDEX ON vector_search_128d_100k (category); + cleanup: + - DROP TABLE IF EXISTS vector_search_128d_100k; + loadRules: + - table: vector_search_128d_100k + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: RandomFloatArrayGen + params: [128, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 100] + + executeRules: + # Test 1: No Filter - Pure ANN search + - workload: search_128d_100k_ip_nofilter + customTags: dim=128,magnitude=100k,distance=ip,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_nofilter + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + + # Test 2: Low Filter 1P - 1% of data filtered out (~99% eligible, easy search) + - workload: search_128d_100k_ip_low_filter_1p + customTags: dim=128,magnitude=100k,distance=ip,filter=low_1pct_out_1p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_low_filter_1p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k WHERE category <= ? ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: SeededRandomNumber + params: [95, 100, 99999] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + + # Test 3: High Filter 99P - 99% of data filtered out (~1% eligible, hard search) + - workload: search_128d_100k_ip_high_filter_99p + customTags: dim=128,magnitude=100k,distance=ip,filter=high_99pct_out_99p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_high_filter_99p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k WHERE category = ? ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: RandomNumber + params: [1, 100] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_1536d_50k_cosine_nofilter.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_1536d_50k_cosine_nofilter.yaml new file mode 100644 index 000000000..bc521eb6a --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_1536d_50k_cosine_nofilter.yaml @@ -0,0 +1,64 @@ +# Vector Search - 1536D, 50K vectors, Cosine distance, No Filter (OpenAI embeddings) +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, magnitude=50k, filter=none, distance=cosine, ef_construction=200, m=16 + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_1536d_50k; + - CREATE TABLE vector_search_1536d_50k (id bigint PRIMARY KEY, embedding vector(1536), metadata text, category int); + - CREATE INDEX ON vector_search_1536d_50k USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_search_1536d_50k; + loadRules: + - table: vector_search_1536d_50k + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: RandomFloatArrayGen + params: [1536, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 10] + + executeRules: + - workload: search_1536d_50k_cosine_nofilter + customTags: dim=1536,magnitude=50k,distance=cosine,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_cosine + weight: 100 + queries: + - query: SELECT id, metadata, 1 - (embedding <=> ?::vector(1536)) as similarity FROM vector_search_1536d_50k ORDER BY embedding <=> ?::vector(1536) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 99999] + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 99999] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_512d_100k_l2_allfilters.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_512d_100k_l2_allfilters.yaml new file mode 100644 index 000000000..c23b9b88c --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/search_512d_100k_l2_allfilters.yaml @@ -0,0 +1,101 @@ +# Vector Search - 512D, 100K vectors, L2 distance, All Filter Types +# Following VectorDBBench naming conventions +# Configuration: dimension=512, magnitude=100k, distance=l2, filters=all +# Tests: nofilter, low_filter_1p (1% filtered out), high_filter_99p (99% filtered out) + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_512d_100k; + - CREATE TABLE vector_search_512d_100k (id bigint PRIMARY KEY, embedding vector(512), metadata text, category int); + - CREATE INDEX ON vector_search_512d_100k USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + - CREATE INDEX ON vector_search_512d_100k (category); + cleanup: + - DROP TABLE IF EXISTS vector_search_512d_100k; + loadRules: + - table: vector_search_512d_100k + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: RandomFloatArrayGen + params: [512, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 100] + + executeRules: + # Test 1: No Filter - Pure ANN search + - workload: search_512d_100k_l2_nofilter + customTags: dim=512,magnitude=100k,distance=l2,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_nofilter + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + + # Test 2: Low Filter 1P - 1% of data filtered out (~99% eligible, easy search) + - workload: search_512d_100k_l2_low_filter_1p + customTags: dim=512,magnitude=100k,distance=l2,filter=low_1pct_out_1p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_low_filter_1p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k WHERE category <= ? ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: SeededRandomNumber + params: [95, 100, 99999] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + + # Test 3: High Filter 99P - 99% of data filtered out (~1% eligible, hard search) + - workload: search_512d_100k_l2_high_filter_99p + customTags: dim=512,magnitude=100k,distance=l2,filter=high_99pct_out_99p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_high_filter_99p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k WHERE category = ? ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: RandomNumber + params: [1, 100] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_1536d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_1536d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..ed69e733d --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_1536d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Update - 1536D, update embedding with HNSW index (Inner Product distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=ip + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_1536d_indexed; + - CREATE TABLE vector_update_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_update_1536d_indexed USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_1536d_indexed; + loadRules: + - table: vector_update_1536d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: update_1536d_embedding_indexed_m16_ef200 + customTags: dim=1536,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=ip + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_1536d_indexed SET embedding = ?::vector(1536) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_512d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_512d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..8ef35a9d5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_512d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Update - 512D, update embedding with HNSW index (L2 distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=l2 + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_512d_indexed; + - CREATE TABLE vector_update_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_update_512d_indexed USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_512d_indexed; + loadRules: + - table: vector_update_512d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: update_512d_embedding_indexed_m16_ef200 + customTags: dim=512,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=l2 + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_512d_indexed SET embedding = ?::vector(512) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_768d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_768d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..15402792f --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yb_colocated/update_768d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Update - 768D, update embedding with HNSW index (Cosine distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=cosine + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_768d_indexed; + - CREATE TABLE vector_update_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_update_768d_indexed USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_768d_indexed; + loadRules: + - table: vector_update_768d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: update_768d_embedding_indexed_m16_ef200 + customTags: dim=768,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=cosine + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_768d_indexed SET embedding = ?::vector(768) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [768, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_1536d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_1536d_single_indexed.yaml new file mode 100644 index 000000000..ea21e5f3c --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_1536d_single_indexed.yaml @@ -0,0 +1,56 @@ +# Vector Delete - 1536D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=delete, deletetype=single, indexed=true + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_1536d_indexed; + - CREATE TABLE vector_delete_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_delete_1536d_indexed USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_1536d_indexed; + loadRules: + - table: vector_delete_1536d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: delete_1536d_single_indexed + customTags: dim=1536,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_1536d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_512d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_512d_single_indexed.yaml new file mode 100644 index 000000000..728995291 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_512d_single_indexed.yaml @@ -0,0 +1,56 @@ +# Vector Delete - 512D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=delete, deletetype=single, indexed=true + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_512d_indexed; + - CREATE TABLE vector_delete_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_delete_512d_indexed USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_512d_indexed; + loadRules: + - table: vector_delete_512d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: delete_512d_single_indexed + customTags: dim=512,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_512d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_768d_single_indexed.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_768d_single_indexed.yaml new file mode 100644 index 000000000..c50bb7ec5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/delete_768d_single_indexed.yaml @@ -0,0 +1,56 @@ +# Vector Delete - 768D, single row delete with HNSW index +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=delete, deletetype=single, indexed=true + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_delete_768d_indexed; + - CREATE TABLE vector_delete_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_delete_768d_indexed USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_delete_768d_indexed; + loadRules: + - table: vector_delete_768d_indexed + rows: 200000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 200000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: delete_768d_single_indexed + customTags: dim=768,operation=delete,deletetype=single,indexed=true + run: + - name: delete_single_row + weight: 100 + queries: + - query: DELETE FROM vector_delete_768d_indexed WHERE id = ? + count: 1 + bindings: + - util: RandomNumber + params: [1, 200000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_1536d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_1536d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..813a8a79a --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_1536d_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Insert - 1536D, with HNSW index (m=16, ef_construction=200), Inner Product distance +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=insert, indexed=true, m=16, ef_construction=200, distance=ip + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_1536d_indexed; + - CREATE TABLE vector_insert_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_insert_1536d_indexed USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_1536d_indexed; + loadRules: + - table: vector_insert_1536d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: insert_1536d_indexed_m16_ef200 + customTags: dim=1536,operation=insert,indexed=true,m=16,ef_construction=200,distance=ip + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_1536d_indexed (id, embedding) VALUES (?, ?::vector(1536)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_512d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_512d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..5a70ad234 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_512d_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Insert - 512D, with HNSW index (m=16, ef_construction=200) +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=insert, indexed=true, m=16, ef_construction=200 + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_512d_indexed; + - CREATE TABLE vector_insert_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_insert_512d_indexed USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_512d_indexed; + loadRules: + - table: vector_insert_512d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: insert_512d_indexed_m16_ef200 + customTags: dim=512,operation=insert,indexed=true,m=16,ef_construction=200 + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_512d_indexed (id, embedding) VALUES (?, ?::vector(512)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_768d_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_768d_indexed_m16_ef200.yaml new file mode 100644 index 000000000..0601150d3 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/insert_768d_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Insert - 768D, with HNSW index (m=16, ef_construction=200), Cosine distance +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=insert, indexed=true, m=16, ef_construction=200, distance=cosine + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_insert_768d_indexed; + - CREATE TABLE vector_insert_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_insert_768d_indexed USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_insert_768d_indexed; + loadRules: + - table: vector_insert_768d_indexed + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: insert_768d_indexed_m16_ef200 + customTags: dim=768,operation=insert,indexed=true,m=16,ef_construction=200,distance=cosine + run: + - name: insert_vector_with_index + weight: 100 + queries: + - query: INSERT INTO vector_insert_768d_indexed (id, embedding) VALUES (?, ?::vector(768)) + count: 1 + bindings: + - util: PrimaryIntGen + params: [50001, 500000] + - util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_128d_100k_ip_allfilters.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_128d_100k_ip_allfilters.yaml new file mode 100644 index 000000000..4042f32b2 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_128d_100k_ip_allfilters.yaml @@ -0,0 +1,101 @@ +# Vector Search - 128D, 100K vectors, Inner Product distance, All Filter Types +# Following VectorDBBench naming conventions +# Configuration: dimension=128, magnitude=100k, distance=ip, filters=all +# Tests: nofilter, low_filter_1p (1% filtered out), high_filter_99p (99% filtered out) + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_128d_100k; + - CREATE TABLE vector_search_128d_100k (id bigint PRIMARY KEY, embedding vector(128), metadata text, category int); + - CREATE INDEX ON vector_search_128d_100k USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + - CREATE INDEX ON vector_search_128d_100k (category); + cleanup: + - DROP TABLE IF EXISTS vector_search_128d_100k; + loadRules: + - table: vector_search_128d_100k + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: RandomFloatArrayGen + params: [128, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 100] + + executeRules: + # Test 1: No Filter - Pure ANN search + - workload: search_128d_100k_ip_nofilter + customTags: dim=128,magnitude=100k,distance=ip,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_nofilter + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + + # Test 2: Low Filter 1P - 1% of data filtered out (~99% eligible, easy search) + - workload: search_128d_100k_ip_low_filter_1p + customTags: dim=128,magnitude=100k,distance=ip,filter=low_1pct_out_1p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_low_filter_1p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k WHERE category <= ? ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: SeededRandomNumber + params: [95, 100, 99999] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + + # Test 3: High Filter 99P - 99% of data filtered out (~1% eligible, hard search) + - workload: search_128d_100k_ip_high_filter_99p + customTags: dim=128,magnitude=100k,distance=ip,filter=high_99pct_out_99p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_ip_high_filter_99p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <#> ?::vector(128) as neg_inner_product FROM vector_search_128d_100k WHERE category = ? ORDER BY embedding <#> ?::vector(128) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] + - util: RandomNumber + params: [1, 100] + - util: DeterministicVectorGen + params: [128, -1.0, 1.0, 12345] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_1536d_50k_cosine_nofilter.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_1536d_50k_cosine_nofilter.yaml new file mode 100644 index 000000000..bc521eb6a --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_1536d_50k_cosine_nofilter.yaml @@ -0,0 +1,64 @@ +# Vector Search - 1536D, 50K vectors, Cosine distance, No Filter (OpenAI embeddings) +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, magnitude=50k, filter=none, distance=cosine, ef_construction=200, m=16 + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_1536d_50k; + - CREATE TABLE vector_search_1536d_50k (id bigint PRIMARY KEY, embedding vector(1536), metadata text, category int); + - CREATE INDEX ON vector_search_1536d_50k USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_search_1536d_50k; + loadRules: + - table: vector_search_1536d_50k + rows: 50000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 50000] + - name: embedding + util: RandomFloatArrayGen + params: [1536, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 10] + + executeRules: + - workload: search_1536d_50k_cosine_nofilter + customTags: dim=1536,magnitude=50k,distance=cosine,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_cosine + weight: 100 + queries: + - query: SELECT id, metadata, 1 - (embedding <=> ?::vector(1536)) as similarity FROM vector_search_1536d_50k ORDER BY embedding <=> ?::vector(1536) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 99999] + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 99999] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_512d_100k_l2_allfilters.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_512d_100k_l2_allfilters.yaml new file mode 100644 index 000000000..c23b9b88c --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/search_512d_100k_l2_allfilters.yaml @@ -0,0 +1,101 @@ +# Vector Search - 512D, 100K vectors, L2 distance, All Filter Types +# Following VectorDBBench naming conventions +# Configuration: dimension=512, magnitude=100k, distance=l2, filters=all +# Tests: nofilter, low_filter_1p (1% filtered out), high_filter_99p (99% filtered out) + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_search_512d_100k; + - CREATE TABLE vector_search_512d_100k (id bigint PRIMARY KEY, embedding vector(512), metadata text, category int); + - CREATE INDEX ON vector_search_512d_100k USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + - CREATE INDEX ON vector_search_512d_100k (category); + cleanup: + - DROP TABLE IF EXISTS vector_search_512d_100k; + loadRules: + - table: vector_search_512d_100k + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: RandomFloatArrayGen + params: [512, -1.0, 1.0] + - name: metadata + util: RandomAString + params: [50, 100] + - name: category + util: RandomNumber + params: [1, 100] + + executeRules: + # Test 1: No Filter - Pure ANN search + - workload: search_512d_100k_l2_nofilter + customTags: dim=512,magnitude=100k,distance=l2,filter=none,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_nofilter + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + + # Test 2: Low Filter 1P - 1% of data filtered out (~99% eligible, easy search) + - workload: search_512d_100k_l2_low_filter_1p + customTags: dim=512,magnitude=100k,distance=l2,filter=low_1pct_out_1p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_low_filter_1p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k WHERE category <= ? ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: SeededRandomNumber + params: [95, 100, 99999] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + + # Test 3: High Filter 99P - 99% of data filtered out (~1% eligible, hard search) + - workload: search_512d_100k_l2_high_filter_99p + customTags: dim=512,magnitude=100k,distance=l2,filter=high_99pct_out_99p,top_k=10,m=16,ef_construction=200 + run: + - name: ann_search_l2_high_filter_99p + weight: 100 + queries: + - query: SELECT id, metadata, embedding <-> ?::vector(512) as distance FROM vector_search_512d_100k WHERE category = ? ORDER BY embedding <-> ?::vector(512) LIMIT 10 + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] + - util: RandomNumber + params: [1, 100] + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 54321] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_1536d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_1536d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..ed69e733d --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_1536d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Update - 1536D, update embedding with HNSW index (Inner Product distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=1536, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=ip + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_1536d_indexed; + - CREATE TABLE vector_update_1536d_indexed (id bigint PRIMARY KEY, embedding vector(1536)); + - CREATE INDEX ON vector_update_1536d_indexed USING ybhnsw (embedding vector_ip_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_1536d_indexed; + loadRules: + - table: vector_update_1536d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 42] + + executeRules: + - workload: update_1536d_embedding_indexed_m16_ef200 + customTags: dim=1536,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=ip + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_1536d_indexed SET embedding = ?::vector(1536) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [1536, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_512d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_512d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..8ef35a9d5 --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_512d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Update - 512D, update embedding with HNSW index (L2 distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=512, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=l2 + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_512d_indexed; + - CREATE TABLE vector_update_512d_indexed (id bigint PRIMARY KEY, embedding vector(512)); + - CREATE INDEX ON vector_update_512d_indexed USING ybhnsw (embedding vector_l2_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_512d_indexed; + loadRules: + - table: vector_update_512d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [512, -1.0, 1.0, 42] + + executeRules: + - workload: update_512d_embedding_indexed_m16_ef200 + customTags: dim=512,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=l2 + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_512d_indexed SET embedding = ?::vector(512) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [512, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_768d_embedding_indexed_m16_ef200.yaml b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_768d_embedding_indexed_m16_ef200.yaml new file mode 100644 index 000000000..15402792f --- /dev/null +++ b/config/yugabyte/regression_pipelines/vector_workloads/yugabyte/update_768d_embedding_indexed_m16_ef200.yaml @@ -0,0 +1,58 @@ +# Vector Update - 768D, update embedding with HNSW index (Cosine distance) +# Following VectorDBBench naming conventions +# Configuration: dimension=768, operation=update, column=embedding, indexed=true, m=16, ef_construction=200, distance=cosine + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 120 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - CREATE EXTENSION IF NOT EXISTS vector; + - DROP TABLE IF EXISTS vector_update_768d_indexed; + - CREATE TABLE vector_update_768d_indexed (id bigint PRIMARY KEY, embedding vector(768)); + - CREATE INDEX ON vector_update_768d_indexed USING ybhnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=200); + cleanup: + - DROP TABLE IF EXISTS vector_update_768d_indexed; + loadRules: + - table: vector_update_768d_indexed + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: embedding + util: DeterministicVectorGen + params: [768, -1.0, 1.0, 42] + + executeRules: + - workload: update_768d_embedding_indexed_m16_ef200 + customTags: dim=768,operation=update,column=embedding,indexed=true,m=16,ef_construction=200,distance=cosine + run: + - name: update_vector_with_index + weight: 100 + queries: + - query: UPDATE vector_update_768d_indexed SET embedding = ?::vector(768) WHERE id = ? + count: 1 + bindings: + - util: DeterministicVectorGen + params: [768, -1.0, 1.0, 43] + - util: RandomNumber + params: [1, 100000] diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG1_varying_index.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG1_varying_index.yaml new file mode 100644 index 000000000..c362d8f80 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG1_varying_index.yaml @@ -0,0 +1,141 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1); + - create index index_test_3_idx2 on index_test_3(col_int_2); + - create index index_test_3_idx3 on index_test_3(col_int_3); + - create index index_test_3_idx4 on index_test_3(col_int_4); + - create index index_test_3_idx5 on index_test_3(col_int_5); + - create index index_test_4_idx1 on index_test_4(col_int_1); + - create index index_test_4_idx2 on index_test_4(col_int_2); + - create index index_test_4_idx3 on index_test_4(col_int_3); + - create index index_test_4_idx4 on index_test_4(col_int_4); + - create index index_test_4_idx5 on index_test_4(col_int_5); + - create index index_test_4_idx6 on index_test_4(col_int_6); + - create index index_test_4_idx7 on index_test_4(col_int_7); + - create index index_test_4_idx8 on index_test_4(col_int_8); + - create index index_test_4_idx9 on index_test_4(col_int_9); + - create index index_test_4_idx10 on index_test_4(col_int_10); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_ + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [ 20, 20 ] + - name: col_date + util: RandomAString + params: [ 20, 20 ] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG2_varying_columns.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG2_varying_columns.yaml new file mode 100644 index 000000000..819d42ddf --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG2_varying_columns.yaml @@ -0,0 +1,105 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_10_cols; + - drop table if exists table_100_cols; + - drop table if exists table_1000_cols; + - CREATE TABLE table_10_cols (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT); + - CREATE TABLE table_100_cols (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT); + - CREATE TABLE table_1000_cols (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT); + cleanup: + - drop table if exists table_10_cols; + - drop table if exists table_100_cols; + - drop table if exists table_1000_cols; + loadRules: + - table: table_10_cols + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col + count: 10 + util: RandomAString + params: [ 5, 5 ] + - table: table_100_cols + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col + count: 100 + util: RandomAString + params: [ 5, 5 ] + - table: table_1000_cols + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col + count: 1000 + util: RandomAString + params: [ 5, 5 ] + executeRules: + - workload: 10_col_test + run: + - name: Insert_with_10cols_test + weight: 100 + queries: + - query: INSERT INTO table_10_cols values (?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 10 + params: [ 5, 5 ] + - workload: 100_col_test + run: + - name: Insert_with_100_cols_test + weight: 100 + queries: + - query: INSERT INTO table_100_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 100 + params: [ 5, 5 ] + - workload: 1000_col_test + run: + - name: Insert_with_1000_cols_test + weight: 100 + queries: + - query: INSERT INTO table_1000_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 1000 + params: [ 5, 5 ] + diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG3_wideTable_idx_backfill.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG3_wideTable_idx_backfill.yaml new file mode 100644 index 000000000..b1c3af70a --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/insertG3_wideTable_idx_backfill.yaml @@ -0,0 +1,61 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 + +works: + work: + time_secs: 30 + rate: unlimited + warmup: 10 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS wide_table; + - CREATE TABLE wide_table ( + int_col1 INT PRIMARY KEY, + int_col2 INT, + text_col1 TEXT, + text_col2 TEXT, + text_col3 TEXT, + text_col4 TEXT, + text_col5 TEXT, + text_col6 TEXT, + text_col7 TEXT, + text_col8 TEXT, + text_col9 TEXT, + text_col10 TEXT + ); + + loadRules: + - table: wide_table + rows: 100000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 100000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 100000] + - name: text_col + count: 10 + util: RandomAString + params: [5000, 5000] + + executeOnce: + - workload: create_index_after_load + time_secs: 30 + run: + - name: index_backfill + weight: 100 + queries: + query: CREATE INDEX idx_int_col2 ON wide_table(int_col2); diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG1_varying_rows.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG1_varying_rows.yaml new file mode 100644 index 000000000..ac027ea87 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG1_varying_rows.yaml @@ -0,0 +1,83 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_1_row + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + params: [1, 1000000] + - workload: update_100 + run: + - name: update_100_rows + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_varchar_3 = ? where id > 100 and id <= 200 + bindings: + - util: RandomAString + params: [20, 20] + + - workload: update_1000 + run: + - name: update_1000_rows + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_varchar_3 = ? where id > 1000 and id <= 2000 + bindings: + - util: RandomAString + params: [20, 20] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG2_varying_indexs.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG2_varying_indexs.yaml new file mode 100644 index 000000000..3749d082b --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG2_varying_indexs.yaml @@ -0,0 +1,90 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_update_test_table2 on update_test_table2(col_int_1); + - create index index_update_test_table3 on update_test_table3(col_int_2) include (col_int_1); + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_ + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [ 20, 20 ] + - name: col_date + util: RandomAString + params: [ 20, 20 ] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_non_index_column + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_1_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_covering_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG3_varying_columns.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG3_varying_columns.yaml new file mode 100644 index 000000000..dccbf54bb --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG3_varying_columns.yaml @@ -0,0 +1,82 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - CREATE TABLE update_test_table1 (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT); + - CREATE TABLE update_test_table2 (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT); + - CREATE TABLE update_test_table3 (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT); + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: col + count: 1100 + util: RandomAString + params: [4, 4] + executeRules: + - workload: update_10_cols + run: + - name: update_10_cols + weight: 100 + queries: + - query: update update_test_table1 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=? where id = ? + bindings: + - util: RandomAString + count: 10 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_100_cols + run: + - name: update_100_cols + weight: 100 + queries: + - query: update update_test_table2 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=? where id=?; + bindings: + - util: RandomAString + count: 100 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_1000_cols + run: + - name: update_1000_cols + weight: 100 + queries: + - query: update update_test_table3 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=?, col101=?, col102=?, col103=?, col104=?, col105=?, col106=?, col107=?, col108=?, col109=?, col110=?, col111=?, col112=?, col113=?, col114=?, col115=?, col116=?, col117=?, col118=?, col119=?, col120=?, col121=?, col122=?, col123=?, col124=?, col125=?, col126=?, col127=?, col128=?, col129=?, col130=?, col131=?, col132=?, col133=?, col134=?, col135=?, col136=?, col137=?, col138=?, col139=?, col140=?, col141=?, col142=?, col143=?, col144=?, col145=?, col146=?, col147=?, col148=?, col149=?, col150=?, col151=?, col152=?, col153=?, col154=?, col155=?, col156=?, col157=?, col158=?, col159=?, col160=?, col161=?, col162=?, col163=?, col164=?, col165=?, col166=?, col167=?, col168=?, col169=?, col170=?, col171=?, col172=?, col173=?, col174=?, col175=?, col176=?, col177=?, col178=?, col179=?, col180=?, col181=?, col182=?, col183=?, col184=?, col185=?, col186=?, col187=?, col188=?, col189=?, col190=?, col191=?, col192=?, col193=?, col194=?, col195=?, col196=?, col197=?, col198=?, col199=?, col200=?, col201=?, col202=?, col203=?, col204=?, col205=?, col206=?, col207=?, col208=?, col209=?, col210=?, col211=?, col212=?, col213=?, col214=?, col215=?, col216=?, col217=?, col218=?, col219=?, col220=?, col221=?, col222=?, col223=?, col224=?, col225=?, col226=?, col227=?, col228=?, col229=?, col230=?, col231=?, col232=?, col233=?, col234=?, col235=?, col236=?, col237=?, col238=?, col239=?, col240=?, col241=?, col242=?, col243=?, col244=?, col245=?, col246=?, col247=?, col248=?, col249=?, col250=?, col251=?, col252=?, col253=?, col254=?, col255=?, col256=?, col257=?, col258=?, col259=?, col260=?, col261=?, col262=?, col263=?, col264=?, col265=?, col266=?, col267=?, col268=?, col269=?, col270=?, col271=?, col272=?, col273=?, col274=?, col275=?, col276=?, col277=?, col278=?, col279=?, col280=?, col281=?, col282=?, col283=?, col284=?, col285=?, col286=?, col287=?, col288=?, col289=?, col290=?, col291=?, col292=?, col293=?, col294=?, col295=?, col296=?, col297=?, col298=?, col299=?, col300=?, col301=?, col302=?, col303=?, col304=?, col305=?, col306=?, col307=?, col308=?, col309=?, col310=?, col311=?, col312=?, col313=?, col314=?, col315=?, col316=?, col317=?, col318=?, col319=?, col320=?, col321=?, col322=?, col323=?, col324=?, col325=?, col326=?, col327=?, col328=?, col329=?, col330=?, col331=?, col332=?, col333=?, col334=?, col335=?, col336=?, col337=?, col338=?, col339=?, col340=?, col341=?, col342=?, col343=?, col344=?, col345=?, col346=?, col347=?, col348=?, col349=?, col350=?, col351=?, col352=?, col353=?, col354=?, col355=?, col356=?, col357=?, col358=?, col359=?, col360=?, col361=?, col362=?, col363=?, col364=?, col365=?, col366=?, col367=?, col368=?, col369=?, col370=?, col371=?, col372=?, col373=?, col374=?, col375=?, col376=?, col377=?, col378=?, col379=?, col380=?, col381=?, col382=?, col383=?, col384=?, col385=?, col386=?, col387=?, col388=?, col389=?, col390=?, col391=?, col392=?, col393=?, col394=?, col395=?, col396=?, col397=?, col398=?, col399=?, col400=?, col401=?, col402=?, col403=?, col404=?, col405=?, col406=?, col407=?, col408=?, col409=?, col410=?, col411=?, col412=?, col413=?, col414=?, col415=?, col416=?, col417=?, col418=?, col419=?, col420=?, col421=?, col422=?, col423=?, col424=?, col425=?, col426=?, col427=?, col428=?, col429=?, col430=?, col431=?, col432=?, col433=?, col434=?, col435=?, col436=?, col437=?, col438=?, col439=?, col440=?, col441=?, col442=?, col443=?, col444=?, col445=?, col446=?, col447=?, col448=?, col449=?, col450=?, col451=?, col452=?, col453=?, col454=?, col455=?, col456=?, col457=?, col458=?, col459=?, col460=?, col461=?, col462=?, col463=?, col464=?, col465=?, col466=?, col467=?, col468=?, col469=?, col470=?, col471=?, col472=?, col473=?, col474=?, col475=?, col476=?, col477=?, col478=?, col479=?, col480=?, col481=?, col482=?, col483=?, col484=?, col485=?, col486=?, col487=?, col488=?, col489=?, col490=?, col491=?, col492=?, col493=?, col494=?, col495=?, col496=?, col497=?, col498=?, col499=?, col500=?, col501=?, col502=?, col503=?, col504=?, col505=?, col506=?, col507=?, col508=?, col509=?, col510=?, col511=?, col512=?, col513=?, col514=?, col515=?, col516=?, col517=?, col518=?, col519=?, col520=?, col521=?, col522=?, col523=?, col524=?, col525=?, col526=?, col527=?, col528=?, col529=?, col530=?, col531=?, col532=?, col533=?, col534=?, col535=?, col536=?, col537=?, col538=?, col539=?, col540=?, col541=?, col542=?, col543=?, col544=?, col545=?, col546=?, col547=?, col548=?, col549=?, col550=?, col551=?, col552=?, col553=?, col554=?, col555=?, col556=?, col557=?, col558=?, col559=?, col560=?, col561=?, col562=?, col563=?, col564=?, col565=?, col566=?, col567=?, col568=?, col569=?, col570=?, col571=?, col572=?, col573=?, col574=?, col575=?, col576=?, col577=?, col578=?, col579=?, col580=?, col581=?, col582=?, col583=?, col584=?, col585=?, col586=?, col587=?, col588=?, col589=?, col590=?, col591=?, col592=?, col593=?, col594=?, col595=?, col596=?, col597=?, col598=?, col599=?, col600=?, col601=?, col602=?, col603=?, col604=?, col605=?, col606=?, col607=?, col608=?, col609=?, col610=?, col611=?, col612=?, col613=?, col614=?, col615=?, col616=?, col617=?, col618=?, col619=?, col620=?, col621=?, col622=?, col623=?, col624=?, col625=?, col626=?, col627=?, col628=?, col629=?, col630=?, col631=?, col632=?, col633=?, col634=?, col635=?, col636=?, col637=?, col638=?, col639=?, col640=?, col641=?, col642=?, col643=?, col644=?, col645=?, col646=?, col647=?, col648=?, col649=?, col650=?, col651=?, col652=?, col653=?, col654=?, col655=?, col656=?, col657=?, col658=?, col659=?, col660=?, col661=?, col662=?, col663=?, col664=?, col665=?, col666=?, col667=?, col668=?, col669=?, col670=?, col671=?, col672=?, col673=?, col674=?, col675=?, col676=?, col677=?, col678=?, col679=?, col680=?, col681=?, col682=?, col683=?, col684=?, col685=?, col686=?, col687=?, col688=?, col689=?, col690=?, col691=?, col692=?, col693=?, col694=?, col695=?, col696=?, col697=?, col698=?, col699=?, col700=?, col701=?, col702=?, col703=?, col704=?, col705=?, col706=?, col707=?, col708=?, col709=?, col710=?, col711=?, col712=?, col713=?, col714=?, col715=?, col716=?, col717=?, col718=?, col719=?, col720=?, col721=?, col722=?, col723=?, col724=?, col725=?, col726=?, col727=?, col728=?, col729=?, col730=?, col731=?, col732=?, col733=?, col734=?, col735=?, col736=?, col737=?, col738=?, col739=?, col740=?, col741=?, col742=?, col743=?, col744=?, col745=?, col746=?, col747=?, col748=?, col749=?, col750=?, col751=?, col752=?, col753=?, col754=?, col755=?, col756=?, col757=?, col758=?, col759=?, col760=?, col761=?, col762=?, col763=?, col764=?, col765=?, col766=?, col767=?, col768=?, col769=?, col770=?, col771=?, col772=?, col773=?, col774=?, col775=?, col776=?, col777=?, col778=?, col779=?, col780=?, col781=?, col782=?, col783=?, col784=?, col785=?, col786=?, col787=?, col788=?, col789=?, col790=?, col791=?, col792=?, col793=?, col794=?, col795=?, col796=?, col797=?, col798=?, col799=?, col800=?, col801=?, col802=?, col803=?, col804=?, col805=?, col806=?, col807=?, col808=?, col809=?, col810=?, col811=?, col812=?, col813=?, col814=?, col815=?, col816=?, col817=?, col818=?, col819=?, col820=?, col821=?, col822=?, col823=?, col824=?, col825=?, col826=?, col827=?, col828=?, col829=?, col830=?, col831=?, col832=?, col833=?, col834=?, col835=?, col836=?, col837=?, col838=?, col839=?, col840=?, col841=?, col842=?, col843=?, col844=?, col845=?, col846=?, col847=?, col848=?, col849=?, col850=?, col851=?, col852=?, col853=?, col854=?, col855=?, col856=?, col857=?, col858=?, col859=?, col860=?, col861=?, col862=?, col863=?, col864=?, col865=?, col866=?, col867=?, col868=?, col869=?, col870=?, col871=?, col872=?, col873=?, col874=?, col875=?, col876=?, col877=?, col878=?, col879=?, col880=?, col881=?, col882=?, col883=?, col884=?, col885=?, col886=?, col887=?, col888=?, col889=?, col890=?, col891=?, col892=?, col893=?, col894=?, col895=?, col896=?, col897=?, col898=?, col899=?, col900=?, col901=?, col902=?, col903=?, col904=?, col905=?, col906=?, col907=?, col908=?, col909=?, col910=?, col911=?, col912=?, col913=?, col914=?, col915=?, col916=?, col917=?, col918=?, col919=?, col920=?, col921=?, col922=?, col923=?, col924=?, col925=?, col926=?, col927=?, col928=?, col929=?, col930=?, col931=?, col932=?, col933=?, col934=?, col935=?, col936=?, col937=?, col938=?, col939=?, col940=?, col941=?, col942=?, col943=?, col944=?, col945=?, col946=?, col947=?, col948=?, col949=?, col950=?, col951=?, col952=?, col953=?, col954=?, col955=?, col956=?, col957=?, col958=?, col959=?, col960=?, col961=?, col962=?, col963=?, col964=?, col965=?, col966=?, col967=?, col968=?, col969=?, col970=?, col971=?, col972=?, col973=?, col974=?, col975=?, col976=?, col977=?, col978=?, col979=?, col980=?, col981=?, col982=?, col983=?, col984=?, col985=?, col986=?, col987=?, col988=?, col989=?, col990=?, col991=?, col992=?, col993=?, col994=?, col995=?, col996=?, col997=?, col998=?, col999=?, col1000=? where id=?; + bindings: + - util: RandomAString + count: 1000 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG4_unmodified_set_clause.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG4_unmodified_set_clause.yaml new file mode 100644 index 000000000..dd14e6895 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG4_unmodified_set_clause.yaml @@ -0,0 +1,194 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1 CASCADE; + - DROP TABLE IF EXISTS pkeyBigint1M_child_1 CASCADE; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card1_1); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1 ASC) INCLUDE (col_bigint_id_2); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card3_1 DESC); + - CREATE UNIQUE INDEX ON pkeyBigint1M_1(col_bigint_id_3); + - CREATE TABLE pkeyBigint1M_child_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_varchar10_id_1 varchar(10), col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, PRIMARY KEY(col_bigint_id_1)); + - ALTER TABLE pkeyBigint1M_child_1 ADD CONSTRAINT pkeyBigint1M_child_id1_fk FOREIGN KEY (col_bigint_id_2) REFERENCES pkeyBigint1M_1 (col_bigint_id_1) ON UPDATE CASCADE; + - ALTER TABLE pkeyBigint1M_child_1 ADD CONSTRAINT pkeyBigint1M_child_id2_fk FOREIGN KEY (col_bigint_id_3) REFERENCES pkeyBigint1M_1 (col_bigint_id_3) ON UPDATE CASCADE; + - CREATE INDEX ON pkeyBigint1M_child_1(col_bigint_card1_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1 CASCADE; + - DROP TABLE IF EXISTS pkeyBigint1M_child_1 CASCADE; + + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: pkeyBigint1M_child_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar10_id_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + + executeRules: + - workload: UG4_1_no_update_to_constraint_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=1000000, col_float2_1 = col_float2_1 + 1 where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + - workload: UG4_2_no_update_to_constraint_tbl2 + run: + - name: update_100_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_child_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=1000000, col_varchar10_id_1 = ? where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: RandomAString + params: [10, 10] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + - workload: UG4_3_no_update_to_constraint_on_conflict_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: INSERT INTO pkeyBigint1M_1 (col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1,col_bigint_id_1,col_bigint_id_2,col_bigint_id_3,col_float2_1,col_float2_2,col_float5_1,col_float5_2,col_boolean_1,col_varchar10_id_1,col_varchar100_id_1,col_varchar100_id_2,col_varchar500_id_1) VALUES (1000000,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT (col_bigint_id_1) DO UPDATE SET col_varchar100_id_1 = ? RETURNING * + bindings: + - util: RandomInt + params: [ 1000001,1001000 ] + - util: RandomInt + params: [ 1000001,1010000] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - util: RandomBoolean + - util: PrimaryStringGen + params: [1, 10] + - util: PrimaryStringGen + params: [1, 100] + - util: PrimaryStringGen + params: [1, 100] + - util: PrimaryStringGen + params: [1, 500] + - util: RandomAString + params: [ 100, 100 ] + + - workload: UG4_4_update_constraint_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=3000000, col_float2_1 = col_float2_1 + 1 where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG5_update_included_colm.yaml b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG5_update_included_colm.yaml new file mode 100644 index 000000000..901127e9d --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/postgres/updateG5_update_included_colm.yaml @@ -0,0 +1,204 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.1 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_1; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_2; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_child_1 CASCADE; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_1 CASCADE; + + - CREATE TABLE UG5_cardinality_tbl1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_card2_1) INCLUDE (col_bigint_card3_1) # update multiple(1000) rows with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_card1_1) INCLUDE (col_bigint_id_2) # update all(1M) rows with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_id_3) INCLUDE (col_int_id_4) # update single column + 1 row with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4) # update single column + 1M row + + - CREATE TABLE UG5_cardinality_tbl1_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON UG5_cardinality_tbl1_2(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4) # update single column + 1M row + + - CREATE TABLE UG5_cardinality_tbl2_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_2); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_3); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_4); + - CREATE INDEX ON UG5_cardinality_tbl2_1(col_int_id_1 ASC) INCLUDE (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4); #Index created so that an update on these included columns will should cascade to child table and it's indexes + - CREATE TABLE UG5_cardinality_tbl2_child_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_varchar10_id_1 varchar(10), col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, PRIMARY KEY(col_bigint_id_1)); + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id1_fk FOREIGN KEY (col_bigint_id_2) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_1) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id2_fk FOREIGN KEY (col_bigint_id_3) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_2) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id3_fk FOREIGN KEY (col_bigint_id_4) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_3) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id4_fk FOREIGN KEY (col_bigint_id_5) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_4) ON UPDATE CASCADE; + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_2) INCLUDE (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5); #Update on referenced+included colmn + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_3 ASC); + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_4 ASC); + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_5 ASC); + + cleanup: + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_child_1 CASCADE; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_1; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_2; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_1 CASCADE; + + loadRules: + + - table: UG5_cardinality_tbl1_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: UG5_cardinality_tbl2_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: UG5_cardinality_tbl2_child_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 5 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar10_id_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + + executeRules: + + # update single column + 1 row with point select + - workload: UG5_1_update_1_rows_1col_included_colm_point_select_filter + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_1 SET col_int_id_4=col_int_id_4+1 where col_bigint_id_3 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + # update single column + 1M row + - workload: UG5_2_update_1M_rows_1col_included_colm_range_filter + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_1 SET col_int_card1_4=col_int_card1_4+1 where col_bigint_id_5 > 0 + + # update single column + 1M row + - workload: UG5_3_update_1M_rows_1col_included_colm_range_filter_range_tbl + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_2 SET col_int_card1_4=col_int_card1_4+1 where col_bigint_id_5 > 0 + + # Update on parent tbl 3cols which are included in an index (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4) referenced in child tbl (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5) and also part of an included colms of an index + - workload: UG5_4_update_parent_tbls_referenced_included_colm_1row + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl2_1 SET col_bigint_id_2=col_bigint_id_2+1000000, col_bigint_id_3=col_bigint_id_3+1000000, col_bigint_id_4=col_bigint_id_4+1000000 where col_int_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 800000 ] + + # Update on parent tbl 3cols which are included in an index (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4) referenced in child tbl (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5) and also part of an included colms of an index + - workload: UG5_5_update_parent_tbls_referenced_included_colm_1k_rows + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl2_1 SET col_bigint_id_2=col_bigint_id_2+1000000, col_bigint_id_3=col_bigint_id_3+1000000, col_bigint_id_4=col_bigint_id_4+1000000 where col_int_id_1 > 999000 + + - workload: UG5_6_update_child_tbls_referenced_included_colm_1k_rows + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE ug5_cardinality_tbl2_child_1 SET col_bigint_id_3=900000 where col_bigint_id_2<1001 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG1_varying_index.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG1_varying_index.yaml new file mode 100644 index 000000000..4ca057e67 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG1_varying_index.yaml @@ -0,0 +1,153 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1); + - create index index_test_3_idx2 on index_test_3(col_int_2); + - create index index_test_3_idx3 on index_test_3(col_int_3); + - create index index_test_3_idx4 on index_test_3(col_int_4); + - create index index_test_3_idx5 on index_test_3(col_int_5); + - create index index_test_4_idx1 on index_test_4(col_int_1); + - create index index_test_4_idx2 on index_test_4(col_int_2); + - create index index_test_4_idx3 on index_test_4(col_int_3); + - create index index_test_4_idx4 on index_test_4(col_int_4); + - create index index_test_4_idx5 on index_test_4(col_int_5); + - create index index_test_4_idx6 on index_test_4(col_int_6); + - create index index_test_4_idx7 on index_test_4(col_int_7); + - create index index_test_4_idx8 on index_test_4(col_int_8); + - create index index_test_4_idx9 on index_test_4(col_int_9); + - create index index_test_4_idx10 on index_test_4(col_int_10); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG2_varying_columns.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG2_varying_columns.yaml new file mode 100644 index 000000000..2398f8e7f --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG2_varying_columns.yaml @@ -0,0 +1,108 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +#colocated tables +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_10_cols; + - drop table if exists table_100_cols; + - drop table if exists table_1000_cols; + - CREATE TABLE table_10_cols (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT,primary key (id asc)); + - CREATE TABLE table_100_cols (id INT, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT,primary key (id asc)); + - CREATE TABLE table_1000_cols (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT,primary key (id asc)); + cleanup: + - drop table if exists table_10_cols; + - drop table if exists table_100_cols; + - drop table if exists table_1000_cols; + loadRules: + - table: table_10_cols + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col + count: 10 + util: RandomAString + params: [ 5, 5 ] + - table: table_100_cols + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col + count: 100 + util: RandomAString + params: [ 5, 5 ] + - table: table_1000_cols + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col + count: 1000 + util: RandomAString + params: [ 5, 5 ] + executeRules: + - workload: 10_col_test + run: + - name: Insert_with_10cols_test + weight: 100 + queries: + - query: INSERT INTO table_10_cols values (?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 10 + params: [ 5, 5 ] + - workload: 100_col_test + run: + - name: Insert_with_100_cols_test + weight: 100 + queries: + - query: INSERT INTO table_100_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 100 + params: [ 5, 5 ] + - workload: 1000_col_test + run: + - name: Insert_with_1000_cols_test + weight: 100 + queries: + - query: INSERT INTO table_1000_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 1000 + params: [ 5, 5 ] diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG3_wideTable_idx_backfill.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG3_wideTable_idx_backfill.yaml new file mode 100644 index 000000000..ca4e4a48f --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/insertG3_wideTable_idx_backfill.yaml @@ -0,0 +1,64 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 + +works: + work: + time_secs: 30 + rate: unlimited + warmup: 10 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS wide_table; + - CREATE TABLE wide_table ( + int_col1 INT PRIMARY KEY, + int_col2 INT, + text_col1 TEXT, + text_col2 TEXT, + text_col3 TEXT, + text_col4 TEXT, + text_col5 TEXT, + text_col6 TEXT, + text_col7 TEXT, + text_col8 TEXT, + text_col9 TEXT, + text_col10 TEXT + ); + + loadRules: + - table: wide_table + rows: 100000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 100000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 100000] + - name: text_col + count: 10 + util: RandomAString + params: [5000, 5000] + + executeOnce: + - workload: create_index_after_load + time_secs: 30 + run: + - name: index_backfill + weight: 100 + queries: + query: CREATE INDEX idx_int_col2 ON wide_table(int_col2); diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG1_varying_rows.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG1_varying_rows.yaml new file mode 100644 index 000000000..6cee4700f --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG1_varying_rows.yaml @@ -0,0 +1,86 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_1_row + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + params: [1, 1000000] + - workload: update_100 + run: + - name: update_100_rows + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_varchar_3 = ? where id > 100 and id <= 200 + bindings: + - util: RandomAString + params: [20, 20] + + - workload: update_1000 + run: + - name: update_1000_rows + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_varchar_3 = ? where id > 1000 and id <= 2000 + bindings: + - util: RandomAString + params: [20, 20] diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG2_varying_indexs.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG2_varying_indexs.yaml new file mode 100644 index 000000000..5156293fe --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG2_varying_indexs.yaml @@ -0,0 +1,91 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_table2 on update_test_table2(col_int_1); + - create index index_test_table3 on update_test_table3(col_int_2) include (col_int_1); + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_ + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [ 20, 20 ] + - name: col_date + util: RandomAString + params: [ 20, 20 ] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_non_index_column + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_1_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_covering_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG3_varying_columns.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG3_varying_columns.yaml new file mode 100644 index 000000000..7e061674f --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG3_varying_columns.yaml @@ -0,0 +1,84 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - CREATE TABLE update_test_table1 (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT,primary key (id asc)); + - CREATE TABLE update_test_table2 (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT,primary key (id asc)); + - CREATE TABLE update_test_table3 (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT,primary key (id asc)); + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: col + count: 1100 + util: RandomAString + params: [4, 4] + executeRules: + - workload: update_10_cols + run: + - name: update_10_cols + weight: 100 + queries: + - query: update update_test_table1 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=? where id = ? + bindings: + - util: RandomAString + count: 10 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_100_cols + run: + - name: update_100_cols + weight: 100 + queries: + - query: update update_test_table2 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=? where id=?; + bindings: + - util: RandomAString + count: 100 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_1000_cols + run: + - name: update_1000_cols + weight: 100 + queries: + - query: update update_test_table3 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=?, col101=?, col102=?, col103=?, col104=?, col105=?, col106=?, col107=?, col108=?, col109=?, col110=?, col111=?, col112=?, col113=?, col114=?, col115=?, col116=?, col117=?, col118=?, col119=?, col120=?, col121=?, col122=?, col123=?, col124=?, col125=?, col126=?, col127=?, col128=?, col129=?, col130=?, col131=?, col132=?, col133=?, col134=?, col135=?, col136=?, col137=?, col138=?, col139=?, col140=?, col141=?, col142=?, col143=?, col144=?, col145=?, col146=?, col147=?, col148=?, col149=?, col150=?, col151=?, col152=?, col153=?, col154=?, col155=?, col156=?, col157=?, col158=?, col159=?, col160=?, col161=?, col162=?, col163=?, col164=?, col165=?, col166=?, col167=?, col168=?, col169=?, col170=?, col171=?, col172=?, col173=?, col174=?, col175=?, col176=?, col177=?, col178=?, col179=?, col180=?, col181=?, col182=?, col183=?, col184=?, col185=?, col186=?, col187=?, col188=?, col189=?, col190=?, col191=?, col192=?, col193=?, col194=?, col195=?, col196=?, col197=?, col198=?, col199=?, col200=?, col201=?, col202=?, col203=?, col204=?, col205=?, col206=?, col207=?, col208=?, col209=?, col210=?, col211=?, col212=?, col213=?, col214=?, col215=?, col216=?, col217=?, col218=?, col219=?, col220=?, col221=?, col222=?, col223=?, col224=?, col225=?, col226=?, col227=?, col228=?, col229=?, col230=?, col231=?, col232=?, col233=?, col234=?, col235=?, col236=?, col237=?, col238=?, col239=?, col240=?, col241=?, col242=?, col243=?, col244=?, col245=?, col246=?, col247=?, col248=?, col249=?, col250=?, col251=?, col252=?, col253=?, col254=?, col255=?, col256=?, col257=?, col258=?, col259=?, col260=?, col261=?, col262=?, col263=?, col264=?, col265=?, col266=?, col267=?, col268=?, col269=?, col270=?, col271=?, col272=?, col273=?, col274=?, col275=?, col276=?, col277=?, col278=?, col279=?, col280=?, col281=?, col282=?, col283=?, col284=?, col285=?, col286=?, col287=?, col288=?, col289=?, col290=?, col291=?, col292=?, col293=?, col294=?, col295=?, col296=?, col297=?, col298=?, col299=?, col300=?, col301=?, col302=?, col303=?, col304=?, col305=?, col306=?, col307=?, col308=?, col309=?, col310=?, col311=?, col312=?, col313=?, col314=?, col315=?, col316=?, col317=?, col318=?, col319=?, col320=?, col321=?, col322=?, col323=?, col324=?, col325=?, col326=?, col327=?, col328=?, col329=?, col330=?, col331=?, col332=?, col333=?, col334=?, col335=?, col336=?, col337=?, col338=?, col339=?, col340=?, col341=?, col342=?, col343=?, col344=?, col345=?, col346=?, col347=?, col348=?, col349=?, col350=?, col351=?, col352=?, col353=?, col354=?, col355=?, col356=?, col357=?, col358=?, col359=?, col360=?, col361=?, col362=?, col363=?, col364=?, col365=?, col366=?, col367=?, col368=?, col369=?, col370=?, col371=?, col372=?, col373=?, col374=?, col375=?, col376=?, col377=?, col378=?, col379=?, col380=?, col381=?, col382=?, col383=?, col384=?, col385=?, col386=?, col387=?, col388=?, col389=?, col390=?, col391=?, col392=?, col393=?, col394=?, col395=?, col396=?, col397=?, col398=?, col399=?, col400=?, col401=?, col402=?, col403=?, col404=?, col405=?, col406=?, col407=?, col408=?, col409=?, col410=?, col411=?, col412=?, col413=?, col414=?, col415=?, col416=?, col417=?, col418=?, col419=?, col420=?, col421=?, col422=?, col423=?, col424=?, col425=?, col426=?, col427=?, col428=?, col429=?, col430=?, col431=?, col432=?, col433=?, col434=?, col435=?, col436=?, col437=?, col438=?, col439=?, col440=?, col441=?, col442=?, col443=?, col444=?, col445=?, col446=?, col447=?, col448=?, col449=?, col450=?, col451=?, col452=?, col453=?, col454=?, col455=?, col456=?, col457=?, col458=?, col459=?, col460=?, col461=?, col462=?, col463=?, col464=?, col465=?, col466=?, col467=?, col468=?, col469=?, col470=?, col471=?, col472=?, col473=?, col474=?, col475=?, col476=?, col477=?, col478=?, col479=?, col480=?, col481=?, col482=?, col483=?, col484=?, col485=?, col486=?, col487=?, col488=?, col489=?, col490=?, col491=?, col492=?, col493=?, col494=?, col495=?, col496=?, col497=?, col498=?, col499=?, col500=?, col501=?, col502=?, col503=?, col504=?, col505=?, col506=?, col507=?, col508=?, col509=?, col510=?, col511=?, col512=?, col513=?, col514=?, col515=?, col516=?, col517=?, col518=?, col519=?, col520=?, col521=?, col522=?, col523=?, col524=?, col525=?, col526=?, col527=?, col528=?, col529=?, col530=?, col531=?, col532=?, col533=?, col534=?, col535=?, col536=?, col537=?, col538=?, col539=?, col540=?, col541=?, col542=?, col543=?, col544=?, col545=?, col546=?, col547=?, col548=?, col549=?, col550=?, col551=?, col552=?, col553=?, col554=?, col555=?, col556=?, col557=?, col558=?, col559=?, col560=?, col561=?, col562=?, col563=?, col564=?, col565=?, col566=?, col567=?, col568=?, col569=?, col570=?, col571=?, col572=?, col573=?, col574=?, col575=?, col576=?, col577=?, col578=?, col579=?, col580=?, col581=?, col582=?, col583=?, col584=?, col585=?, col586=?, col587=?, col588=?, col589=?, col590=?, col591=?, col592=?, col593=?, col594=?, col595=?, col596=?, col597=?, col598=?, col599=?, col600=?, col601=?, col602=?, col603=?, col604=?, col605=?, col606=?, col607=?, col608=?, col609=?, col610=?, col611=?, col612=?, col613=?, col614=?, col615=?, col616=?, col617=?, col618=?, col619=?, col620=?, col621=?, col622=?, col623=?, col624=?, col625=?, col626=?, col627=?, col628=?, col629=?, col630=?, col631=?, col632=?, col633=?, col634=?, col635=?, col636=?, col637=?, col638=?, col639=?, col640=?, col641=?, col642=?, col643=?, col644=?, col645=?, col646=?, col647=?, col648=?, col649=?, col650=?, col651=?, col652=?, col653=?, col654=?, col655=?, col656=?, col657=?, col658=?, col659=?, col660=?, col661=?, col662=?, col663=?, col664=?, col665=?, col666=?, col667=?, col668=?, col669=?, col670=?, col671=?, col672=?, col673=?, col674=?, col675=?, col676=?, col677=?, col678=?, col679=?, col680=?, col681=?, col682=?, col683=?, col684=?, col685=?, col686=?, col687=?, col688=?, col689=?, col690=?, col691=?, col692=?, col693=?, col694=?, col695=?, col696=?, col697=?, col698=?, col699=?, col700=?, col701=?, col702=?, col703=?, col704=?, col705=?, col706=?, col707=?, col708=?, col709=?, col710=?, col711=?, col712=?, col713=?, col714=?, col715=?, col716=?, col717=?, col718=?, col719=?, col720=?, col721=?, col722=?, col723=?, col724=?, col725=?, col726=?, col727=?, col728=?, col729=?, col730=?, col731=?, col732=?, col733=?, col734=?, col735=?, col736=?, col737=?, col738=?, col739=?, col740=?, col741=?, col742=?, col743=?, col744=?, col745=?, col746=?, col747=?, col748=?, col749=?, col750=?, col751=?, col752=?, col753=?, col754=?, col755=?, col756=?, col757=?, col758=?, col759=?, col760=?, col761=?, col762=?, col763=?, col764=?, col765=?, col766=?, col767=?, col768=?, col769=?, col770=?, col771=?, col772=?, col773=?, col774=?, col775=?, col776=?, col777=?, col778=?, col779=?, col780=?, col781=?, col782=?, col783=?, col784=?, col785=?, col786=?, col787=?, col788=?, col789=?, col790=?, col791=?, col792=?, col793=?, col794=?, col795=?, col796=?, col797=?, col798=?, col799=?, col800=?, col801=?, col802=?, col803=?, col804=?, col805=?, col806=?, col807=?, col808=?, col809=?, col810=?, col811=?, col812=?, col813=?, col814=?, col815=?, col816=?, col817=?, col818=?, col819=?, col820=?, col821=?, col822=?, col823=?, col824=?, col825=?, col826=?, col827=?, col828=?, col829=?, col830=?, col831=?, col832=?, col833=?, col834=?, col835=?, col836=?, col837=?, col838=?, col839=?, col840=?, col841=?, col842=?, col843=?, col844=?, col845=?, col846=?, col847=?, col848=?, col849=?, col850=?, col851=?, col852=?, col853=?, col854=?, col855=?, col856=?, col857=?, col858=?, col859=?, col860=?, col861=?, col862=?, col863=?, col864=?, col865=?, col866=?, col867=?, col868=?, col869=?, col870=?, col871=?, col872=?, col873=?, col874=?, col875=?, col876=?, col877=?, col878=?, col879=?, col880=?, col881=?, col882=?, col883=?, col884=?, col885=?, col886=?, col887=?, col888=?, col889=?, col890=?, col891=?, col892=?, col893=?, col894=?, col895=?, col896=?, col897=?, col898=?, col899=?, col900=?, col901=?, col902=?, col903=?, col904=?, col905=?, col906=?, col907=?, col908=?, col909=?, col910=?, col911=?, col912=?, col913=?, col914=?, col915=?, col916=?, col917=?, col918=?, col919=?, col920=?, col921=?, col922=?, col923=?, col924=?, col925=?, col926=?, col927=?, col928=?, col929=?, col930=?, col931=?, col932=?, col933=?, col934=?, col935=?, col936=?, col937=?, col938=?, col939=?, col940=?, col941=?, col942=?, col943=?, col944=?, col945=?, col946=?, col947=?, col948=?, col949=?, col950=?, col951=?, col952=?, col953=?, col954=?, col955=?, col956=?, col957=?, col958=?, col959=?, col960=?, col961=?, col962=?, col963=?, col964=?, col965=?, col966=?, col967=?, col968=?, col969=?, col970=?, col971=?, col972=?, col973=?, col974=?, col975=?, col976=?, col977=?, col978=?, col979=?, col980=?, col981=?, col982=?, col983=?, col984=?, col985=?, col986=?, col987=?, col988=?, col989=?, col990=?, col991=?, col992=?, col993=?, col994=?, col995=?, col996=?, col997=?, col998=?, col999=?, col1000=? where id=?; + bindings: + - util: RandomAString + count: 1000 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG4_unmodified_set_clause.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG4_unmodified_set_clause.yaml new file mode 100644 index 000000000..5ad34a62d --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG4_unmodified_set_clause.yaml @@ -0,0 +1,196 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1 CASCADE; + - DROP TABLE IF EXISTS pkeyBigint1M_child_1 CASCADE; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card1_1); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1 ASC) INCLUDE (col_bigint_id_2); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card3_1 DESC); + - CREATE UNIQUE INDEX ON pkeyBigint1M_1(col_bigint_id_3); + - CREATE TABLE pkeyBigint1M_child_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_varchar10_id_1 varchar(10), col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, PRIMARY KEY(col_bigint_id_1)); + - ALTER TABLE pkeyBigint1M_child_1 ADD CONSTRAINT pkeyBigint1M_child_id1_fk FOREIGN KEY (col_bigint_id_2) REFERENCES pkeyBigint1M_1 (col_bigint_id_1) ON UPDATE CASCADE; + - ALTER TABLE pkeyBigint1M_child_1 ADD CONSTRAINT pkeyBigint1M_child_id2_fk FOREIGN KEY (col_bigint_id_3) REFERENCES pkeyBigint1M_1 (col_bigint_id_3) ON UPDATE CASCADE; + - CREATE INDEX ON pkeyBigint1M_child_1(col_bigint_card1_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1 CASCADE; + - DROP TABLE IF EXISTS pkeyBigint1M_child_1 CASCADE; + + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: pkeyBigint1M_child_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar10_id_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + + executeRules: + - workload: UG4_1_no_update_to_constraint_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=1000000, col_float2_1 = col_float2_1 + 1 where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + - workload: UG4_2_no_update_to_constraint_tbl2 + run: + - name: update_100_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_child_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=1000000, col_varchar10_id_1 = ? where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: RandomAString + params: [10, 10] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + - workload: UG4_3_no_update_to_constraint_on_conflict_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: INSERT INTO pkeyBigint1M_1 (col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1,col_bigint_id_1,col_bigint_id_2,col_bigint_id_3,col_float2_1,col_float2_2,col_float5_1,col_float5_2,col_boolean_1,col_varchar10_id_1,col_varchar100_id_1,col_varchar100_id_2,col_varchar500_id_1) VALUES (1000000,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT (col_bigint_id_1) DO UPDATE SET col_varchar100_id_1 = ? RETURNING * + bindings: + - util: RandomInt + params: [ 1000001,1001000 ] + - util: RandomInt + params: [ 1000001,1010000] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - util: RandomBoolean + - util: PrimaryStringGen + params: [1, 10] + - util: PrimaryStringGen + params: [1, 100] + - util: PrimaryStringGen + params: [1, 100] + - util: PrimaryStringGen + params: [1, 500] + - util: RandomAString + params: [ 100, 100 ] + + - workload: UG4_4_update_constraint_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=3000000, col_float2_1 = col_float2_1 + 1 where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG5_update_included_colm.yaml b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG5_update_included_colm.yaml new file mode 100644 index 000000000..1786ef8f0 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yb_colocated/updateG5_update_included_colm.yaml @@ -0,0 +1,206 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_1; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_2; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_child_1 CASCADE; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_1 CASCADE; + + - CREATE TABLE UG5_cardinality_tbl1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_card2_1) INCLUDE (col_bigint_card3_1) # update multiple(1000) rows with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_card1_1) INCLUDE (col_bigint_id_2) # update all(1M) rows with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_id_3) INCLUDE (col_int_id_4) # update single column + 1 row with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4) # update single column + 1M row + + - CREATE TABLE UG5_cardinality_tbl1_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON UG5_cardinality_tbl1_2(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4) # update single column + 1M row + + - CREATE TABLE UG5_cardinality_tbl2_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_2); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_3); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_4); + - CREATE INDEX ON UG5_cardinality_tbl2_1(col_int_id_1 ASC) INCLUDE (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4); #Index created so that an update on these included columns will should cascade to child table and it's indexes + - CREATE TABLE UG5_cardinality_tbl2_child_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_varchar10_id_1 varchar(10), col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, PRIMARY KEY(col_bigint_id_1)); + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id1_fk FOREIGN KEY (col_bigint_id_2) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_1) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id2_fk FOREIGN KEY (col_bigint_id_3) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_2) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id3_fk FOREIGN KEY (col_bigint_id_4) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_3) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id4_fk FOREIGN KEY (col_bigint_id_5) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_4) ON UPDATE CASCADE; + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_2 ASC) INCLUDE (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5); #Update on referenced+included colmn + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_3 ASC); + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_4 ASC); + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_5 ASC); + + cleanup: + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_child_1 CASCADE; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_1; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_2; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_1 CASCADE; + + loadRules: + + - table: UG5_cardinality_tbl1_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: UG5_cardinality_tbl2_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: UG5_cardinality_tbl2_child_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 5 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar10_id_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + + executeRules: + + # update single column + 1 row with point select + - workload: UG5_1_update_1_rows_1col_included_colm_point_select_filter + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_1 SET col_int_id_4=col_int_id_4+1 where col_bigint_id_3 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + # update single column + 1M row + - workload: UG5_2_update_1M_rows_1col_included_colm_range_filter + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_1 SET col_int_card1_4=col_int_card1_4+1 where col_bigint_id_5 > 0 + + # update single column + 1M row + - workload: UG5_3_update_1M_rows_1col_included_colm_range_filter_range_tbl + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_2 SET col_int_card1_4=col_int_card1_4+1 where col_bigint_id_5 > 0 + + # Update on parent tbl 3cols which are included in an index (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4) referenced in child tbl (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5) and also part of an included colms of an index + - workload: UG5_4_update_parent_tbls_referenced_included_colm_1row + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl2_1 SET col_bigint_id_2=col_bigint_id_2+1000000, col_bigint_id_3=col_bigint_id_3+1000000, col_bigint_id_4=col_bigint_id_4+1000000 where col_int_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 800000 ] + + # Update on parent tbl 3cols which are included in an index (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4) referenced in child tbl (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5) and also part of an included colms of an index + - workload: UG5_5_update_parent_tbls_referenced_included_colm_1k_rows + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl2_1 SET col_bigint_id_2=col_bigint_id_2+1000000, col_bigint_id_3=col_bigint_id_3+1000000, col_bigint_id_4=col_bigint_id_4+1000000 where col_int_id_1 > 999000 + + - workload: UG5_6_update_child_tbls_referenced_included_colm_1k_rows + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE ug5_cardinality_tbl2_child_1 SET col_bigint_id_3=900000 where col_bigint_id_2<1001 \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG1_varying_index.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG1_varying_index.yaml new file mode 100644 index 000000000..287a430cc --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG1_varying_index.yaml @@ -0,0 +1,152 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1); + - create index index_test_3_idx2 on index_test_3(col_int_2); + - create index index_test_3_idx3 on index_test_3(col_int_3); + - create index index_test_3_idx4 on index_test_3(col_int_4); + - create index index_test_3_idx5 on index_test_3(col_int_5); + - create index index_test_4_idx1 on index_test_4(col_int_1); + - create index index_test_4_idx2 on index_test_4(col_int_2); + - create index index_test_4_idx3 on index_test_4(col_int_3); + - create index index_test_4_idx4 on index_test_4(col_int_4); + - create index index_test_4_idx5 on index_test_4(col_int_5); + - create index index_test_4_idx6 on index_test_4(col_int_6); + - create index index_test_4_idx7 on index_test_4(col_int_7); + - create index index_test_4_idx8 on index_test_4(col_int_8); + - create index index_test_4_idx9 on index_test_4(col_int_9); + - create index index_test_4_idx10 on index_test_4(col_int_10); + cleanup: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + loadRules: + - table: index_test_ + count: 4 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000000 + - name: col_int_ + count: 10 + util: RandomNumber + params: + - 1 + - 1000000 + - name: col_varchar_ + count: 3 + util: RandomAString + params: + - 5 + - 5 + - name: col_date + util: RandomAString + params: + - 5 + - 5 + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG2_varying_columns.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG2_varying_columns.yaml new file mode 100644 index 000000000..88df46738 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG2_varying_columns.yaml @@ -0,0 +1,105 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + active_terminals: 1 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_10_cols; + - drop table if exists table_100_cols; + - drop table if exists table_1000_cols; + - CREATE TABLE table_10_cols (id INT, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT,primary key (id asc)); + - CREATE TABLE table_100_cols (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT,primary key (id asc)); + - CREATE TABLE table_1000_cols (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT,primary key (id asc)); + cleanup: + - drop table if exists table_10_cols; + - drop table if exists table_100_cols; + - drop table if exists table_1000_cols; + loadRules: + - table: table_10_cols + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col + count: 10 + util: RandomAString + params: [ 5, 5 ] + - table: table_100_cols + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col + count: 100 + util: RandomAString + params: [ 5, 5 ] + - table: table_1000_cols + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 100000 ] + - name: col + count: 1000 + util: RandomAString + params: [ 5, 5 ] + executeRules: + - workload: 10_col_test + run: + - name: Insert_with_10cols_test + weight: 100 + queries: + - query: INSERT INTO table_10_cols values (?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 10 + params: [ 5, 5 ] + - workload: 100_col_test + run: + - name: Insert_with_100_cols_test + weight: 100 + queries: + - query: INSERT INTO table_100_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 100 + params: [ 5, 5 ] + - workload: 1000_col_test + run: + - name: Insert_with_1000_cols_test + weight: 100 + queries: + - query: INSERT INTO table_1000_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 1000 + params: [ 5, 5 ] diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG3_wideTable_idx_backfill.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG3_wideTable_idx_backfill.yaml new file mode 100644 index 000000000..48b1dae8f --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/insertG3_wideTable_idx_backfill.yaml @@ -0,0 +1,62 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +yaml_version: v1.0 +use_dist_in_explain: true + +works: + work: + time_secs: 30 + rate: unlimited + warmup: 10 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - drop table IF EXISTS wide_table; + - CREATE TABLE wide_table ( + int_col1 INT PRIMARY KEY, + int_col2 INT, + text_col1 TEXT, + text_col2 TEXT, + text_col3 TEXT, + text_col4 TEXT, + text_col5 TEXT, + text_col6 TEXT, + text_col7 TEXT, + text_col8 TEXT, + text_col9 TEXT, + text_col10 TEXT + ); + + loadRules: + - table: wide_table + rows: 100000 + columns: + - name: int_col1 + util: PrimaryIntGen + params: [1, 100000] + - name: int_col2 + util: PrimaryIntGen + params: [1, 100000] + - name: text_col + count: 10 + util: RandomAString + params: [5000, 5000] + + executeOnce: + - workload: create_index_after_load + time_secs: 30 + run: + - name: index_backfill + weight: 100 + queries: + query: CREATE INDEX idx_int_col2 ON wide_table(int_col2); diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG1_varying_rows.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG1_varying_rows.yaml new file mode 100644 index 000000000..003fbb353 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG1_varying_rows.yaml @@ -0,0 +1,85 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_1_row + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + params: [1, 1000000] + - workload: update_100 + run: + - name: update_100_rows + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_varchar_3 = ? where id > 100 and id <= 200 + bindings: + - util: RandomAString + params: [20, 20] + + - workload: update_1000 + run: + - name: update_1000_rows + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_varchar_3 = ? where id > 1000 and id <= 2000 + bindings: + - util: RandomAString + params: [20, 20] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG2_varying_indexs.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG2_varying_indexs.yaml new file mode 100644 index 000000000..c6ada2e10 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG2_varying_indexs.yaml @@ -0,0 +1,92 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc)) + - create index index_test_table2 on update_test_table2(col_int_1); + - create index index_test_table3 on update_test_table3(col_int_2) include (col_int_1); + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_ + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [ 20, 20 ] + - name: col_date + util: RandomAString + params: [ 20, 20 ] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_non_index_column + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_1_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_covering_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + + diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG3_varying_columns.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG3_varying_columns.yaml new file mode 100644 index 000000000..dd51d089a --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG3_varying_columns.yaml @@ -0,0 +1,83 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - CREATE TABLE update_test_table1 (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT,primary key (id asc)); + - CREATE TABLE update_test_table2 (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT,primary key (id asc)); + - CREATE TABLE update_test_table3 (id INT , col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT,primary key (id asc)); + cleanup: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + loadRules: + - table: update_test_table + count: 3 + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: col + count: 1100 + util: RandomAString + params: [4, 4] + executeRules: + - workload: update_10_cols + run: + - name: update_10_cols + weight: 100 + queries: + - query: update update_test_table1 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=? where id = ? + bindings: + - util: RandomAString + count: 10 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_100_cols + run: + - name: update_100_cols + weight: 100 + queries: + - query: update update_test_table2 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=? where id=?; + bindings: + - util: RandomAString + count: 100 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_1000_cols + run: + - name: update_1000_cols + weight: 100 + queries: + - query: update update_test_table3 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=?, col101=?, col102=?, col103=?, col104=?, col105=?, col106=?, col107=?, col108=?, col109=?, col110=?, col111=?, col112=?, col113=?, col114=?, col115=?, col116=?, col117=?, col118=?, col119=?, col120=?, col121=?, col122=?, col123=?, col124=?, col125=?, col126=?, col127=?, col128=?, col129=?, col130=?, col131=?, col132=?, col133=?, col134=?, col135=?, col136=?, col137=?, col138=?, col139=?, col140=?, col141=?, col142=?, col143=?, col144=?, col145=?, col146=?, col147=?, col148=?, col149=?, col150=?, col151=?, col152=?, col153=?, col154=?, col155=?, col156=?, col157=?, col158=?, col159=?, col160=?, col161=?, col162=?, col163=?, col164=?, col165=?, col166=?, col167=?, col168=?, col169=?, col170=?, col171=?, col172=?, col173=?, col174=?, col175=?, col176=?, col177=?, col178=?, col179=?, col180=?, col181=?, col182=?, col183=?, col184=?, col185=?, col186=?, col187=?, col188=?, col189=?, col190=?, col191=?, col192=?, col193=?, col194=?, col195=?, col196=?, col197=?, col198=?, col199=?, col200=?, col201=?, col202=?, col203=?, col204=?, col205=?, col206=?, col207=?, col208=?, col209=?, col210=?, col211=?, col212=?, col213=?, col214=?, col215=?, col216=?, col217=?, col218=?, col219=?, col220=?, col221=?, col222=?, col223=?, col224=?, col225=?, col226=?, col227=?, col228=?, col229=?, col230=?, col231=?, col232=?, col233=?, col234=?, col235=?, col236=?, col237=?, col238=?, col239=?, col240=?, col241=?, col242=?, col243=?, col244=?, col245=?, col246=?, col247=?, col248=?, col249=?, col250=?, col251=?, col252=?, col253=?, col254=?, col255=?, col256=?, col257=?, col258=?, col259=?, col260=?, col261=?, col262=?, col263=?, col264=?, col265=?, col266=?, col267=?, col268=?, col269=?, col270=?, col271=?, col272=?, col273=?, col274=?, col275=?, col276=?, col277=?, col278=?, col279=?, col280=?, col281=?, col282=?, col283=?, col284=?, col285=?, col286=?, col287=?, col288=?, col289=?, col290=?, col291=?, col292=?, col293=?, col294=?, col295=?, col296=?, col297=?, col298=?, col299=?, col300=?, col301=?, col302=?, col303=?, col304=?, col305=?, col306=?, col307=?, col308=?, col309=?, col310=?, col311=?, col312=?, col313=?, col314=?, col315=?, col316=?, col317=?, col318=?, col319=?, col320=?, col321=?, col322=?, col323=?, col324=?, col325=?, col326=?, col327=?, col328=?, col329=?, col330=?, col331=?, col332=?, col333=?, col334=?, col335=?, col336=?, col337=?, col338=?, col339=?, col340=?, col341=?, col342=?, col343=?, col344=?, col345=?, col346=?, col347=?, col348=?, col349=?, col350=?, col351=?, col352=?, col353=?, col354=?, col355=?, col356=?, col357=?, col358=?, col359=?, col360=?, col361=?, col362=?, col363=?, col364=?, col365=?, col366=?, col367=?, col368=?, col369=?, col370=?, col371=?, col372=?, col373=?, col374=?, col375=?, col376=?, col377=?, col378=?, col379=?, col380=?, col381=?, col382=?, col383=?, col384=?, col385=?, col386=?, col387=?, col388=?, col389=?, col390=?, col391=?, col392=?, col393=?, col394=?, col395=?, col396=?, col397=?, col398=?, col399=?, col400=?, col401=?, col402=?, col403=?, col404=?, col405=?, col406=?, col407=?, col408=?, col409=?, col410=?, col411=?, col412=?, col413=?, col414=?, col415=?, col416=?, col417=?, col418=?, col419=?, col420=?, col421=?, col422=?, col423=?, col424=?, col425=?, col426=?, col427=?, col428=?, col429=?, col430=?, col431=?, col432=?, col433=?, col434=?, col435=?, col436=?, col437=?, col438=?, col439=?, col440=?, col441=?, col442=?, col443=?, col444=?, col445=?, col446=?, col447=?, col448=?, col449=?, col450=?, col451=?, col452=?, col453=?, col454=?, col455=?, col456=?, col457=?, col458=?, col459=?, col460=?, col461=?, col462=?, col463=?, col464=?, col465=?, col466=?, col467=?, col468=?, col469=?, col470=?, col471=?, col472=?, col473=?, col474=?, col475=?, col476=?, col477=?, col478=?, col479=?, col480=?, col481=?, col482=?, col483=?, col484=?, col485=?, col486=?, col487=?, col488=?, col489=?, col490=?, col491=?, col492=?, col493=?, col494=?, col495=?, col496=?, col497=?, col498=?, col499=?, col500=?, col501=?, col502=?, col503=?, col504=?, col505=?, col506=?, col507=?, col508=?, col509=?, col510=?, col511=?, col512=?, col513=?, col514=?, col515=?, col516=?, col517=?, col518=?, col519=?, col520=?, col521=?, col522=?, col523=?, col524=?, col525=?, col526=?, col527=?, col528=?, col529=?, col530=?, col531=?, col532=?, col533=?, col534=?, col535=?, col536=?, col537=?, col538=?, col539=?, col540=?, col541=?, col542=?, col543=?, col544=?, col545=?, col546=?, col547=?, col548=?, col549=?, col550=?, col551=?, col552=?, col553=?, col554=?, col555=?, col556=?, col557=?, col558=?, col559=?, col560=?, col561=?, col562=?, col563=?, col564=?, col565=?, col566=?, col567=?, col568=?, col569=?, col570=?, col571=?, col572=?, col573=?, col574=?, col575=?, col576=?, col577=?, col578=?, col579=?, col580=?, col581=?, col582=?, col583=?, col584=?, col585=?, col586=?, col587=?, col588=?, col589=?, col590=?, col591=?, col592=?, col593=?, col594=?, col595=?, col596=?, col597=?, col598=?, col599=?, col600=?, col601=?, col602=?, col603=?, col604=?, col605=?, col606=?, col607=?, col608=?, col609=?, col610=?, col611=?, col612=?, col613=?, col614=?, col615=?, col616=?, col617=?, col618=?, col619=?, col620=?, col621=?, col622=?, col623=?, col624=?, col625=?, col626=?, col627=?, col628=?, col629=?, col630=?, col631=?, col632=?, col633=?, col634=?, col635=?, col636=?, col637=?, col638=?, col639=?, col640=?, col641=?, col642=?, col643=?, col644=?, col645=?, col646=?, col647=?, col648=?, col649=?, col650=?, col651=?, col652=?, col653=?, col654=?, col655=?, col656=?, col657=?, col658=?, col659=?, col660=?, col661=?, col662=?, col663=?, col664=?, col665=?, col666=?, col667=?, col668=?, col669=?, col670=?, col671=?, col672=?, col673=?, col674=?, col675=?, col676=?, col677=?, col678=?, col679=?, col680=?, col681=?, col682=?, col683=?, col684=?, col685=?, col686=?, col687=?, col688=?, col689=?, col690=?, col691=?, col692=?, col693=?, col694=?, col695=?, col696=?, col697=?, col698=?, col699=?, col700=?, col701=?, col702=?, col703=?, col704=?, col705=?, col706=?, col707=?, col708=?, col709=?, col710=?, col711=?, col712=?, col713=?, col714=?, col715=?, col716=?, col717=?, col718=?, col719=?, col720=?, col721=?, col722=?, col723=?, col724=?, col725=?, col726=?, col727=?, col728=?, col729=?, col730=?, col731=?, col732=?, col733=?, col734=?, col735=?, col736=?, col737=?, col738=?, col739=?, col740=?, col741=?, col742=?, col743=?, col744=?, col745=?, col746=?, col747=?, col748=?, col749=?, col750=?, col751=?, col752=?, col753=?, col754=?, col755=?, col756=?, col757=?, col758=?, col759=?, col760=?, col761=?, col762=?, col763=?, col764=?, col765=?, col766=?, col767=?, col768=?, col769=?, col770=?, col771=?, col772=?, col773=?, col774=?, col775=?, col776=?, col777=?, col778=?, col779=?, col780=?, col781=?, col782=?, col783=?, col784=?, col785=?, col786=?, col787=?, col788=?, col789=?, col790=?, col791=?, col792=?, col793=?, col794=?, col795=?, col796=?, col797=?, col798=?, col799=?, col800=?, col801=?, col802=?, col803=?, col804=?, col805=?, col806=?, col807=?, col808=?, col809=?, col810=?, col811=?, col812=?, col813=?, col814=?, col815=?, col816=?, col817=?, col818=?, col819=?, col820=?, col821=?, col822=?, col823=?, col824=?, col825=?, col826=?, col827=?, col828=?, col829=?, col830=?, col831=?, col832=?, col833=?, col834=?, col835=?, col836=?, col837=?, col838=?, col839=?, col840=?, col841=?, col842=?, col843=?, col844=?, col845=?, col846=?, col847=?, col848=?, col849=?, col850=?, col851=?, col852=?, col853=?, col854=?, col855=?, col856=?, col857=?, col858=?, col859=?, col860=?, col861=?, col862=?, col863=?, col864=?, col865=?, col866=?, col867=?, col868=?, col869=?, col870=?, col871=?, col872=?, col873=?, col874=?, col875=?, col876=?, col877=?, col878=?, col879=?, col880=?, col881=?, col882=?, col883=?, col884=?, col885=?, col886=?, col887=?, col888=?, col889=?, col890=?, col891=?, col892=?, col893=?, col894=?, col895=?, col896=?, col897=?, col898=?, col899=?, col900=?, col901=?, col902=?, col903=?, col904=?, col905=?, col906=?, col907=?, col908=?, col909=?, col910=?, col911=?, col912=?, col913=?, col914=?, col915=?, col916=?, col917=?, col918=?, col919=?, col920=?, col921=?, col922=?, col923=?, col924=?, col925=?, col926=?, col927=?, col928=?, col929=?, col930=?, col931=?, col932=?, col933=?, col934=?, col935=?, col936=?, col937=?, col938=?, col939=?, col940=?, col941=?, col942=?, col943=?, col944=?, col945=?, col946=?, col947=?, col948=?, col949=?, col950=?, col951=?, col952=?, col953=?, col954=?, col955=?, col956=?, col957=?, col958=?, col959=?, col960=?, col961=?, col962=?, col963=?, col964=?, col965=?, col966=?, col967=?, col968=?, col969=?, col970=?, col971=?, col972=?, col973=?, col974=?, col975=?, col976=?, col977=?, col978=?, col979=?, col980=?, col981=?, col982=?, col983=?, col984=?, col985=?, col986=?, col987=?, col988=?, col989=?, col990=?, col991=?, col992=?, col993=?, col994=?, col995=?, col996=?, col997=?, col998=?, col999=?, col1000=? where id=?; + bindings: + - util: RandomAString + count: 1000 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG4_unmodified_set_clause.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG4_unmodified_set_clause.yaml new file mode 100644 index 000000000..662ac73b7 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG4_unmodified_set_clause.yaml @@ -0,0 +1,194 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.0 +works: + work: + time_secs: 60 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - DROP TABLE IF EXISTS pkeyBigint1M_1 CASCADE; + - DROP TABLE IF EXISTS pkeyBigint1M_child_1 CASCADE; + - CREATE TABLE pkeyBigint1M_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_id_1 varchar(10), col_varchar100_id_1 varchar(100), col_varchar100_id_2 varchar(100), col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card1_1); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card2_1 ASC) INCLUDE (col_bigint_id_2); + - CREATE INDEX ON pkeyBigint1M_1(col_bigint_card3_1 DESC); + - CREATE UNIQUE INDEX ON pkeyBigint1M_1(col_bigint_id_3); + - CREATE TABLE pkeyBigint1M_child_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_varchar10_id_1 varchar(10), col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, PRIMARY KEY(col_bigint_id_1)); + - ALTER TABLE pkeyBigint1M_child_1 ADD CONSTRAINT pkeyBigint1M_child_id1_fk FOREIGN KEY (col_bigint_id_2) REFERENCES pkeyBigint1M_1 (col_bigint_id_1) ON UPDATE CASCADE; + - ALTER TABLE pkeyBigint1M_child_1 ADD CONSTRAINT pkeyBigint1M_child_id2_fk FOREIGN KEY (col_bigint_id_3) REFERENCES pkeyBigint1M_1 (col_bigint_id_3) ON UPDATE CASCADE; + - CREATE INDEX ON pkeyBigint1M_child_1(col_bigint_card1_1); + + cleanup: + - DROP TABLE IF EXISTS pkeyBigint1M_1 CASCADE; + - DROP TABLE IF EXISTS pkeyBigint1M_child_1 CASCADE; + + loadRules: + - table: pkeyBigint1M_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_varchar100_id_ + count: 2 + util: PrimaryStringGen + params: [1, 100] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: pkeyBigint1M_child_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 3 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar10_id_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + + executeRules: + + - workload: UG4_1_no_update_to_constraint_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=1000000, col_float2_1 = col_float2_1 + 1 where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + - workload: UG4_2_no_update_to_constraint_tbl2 + run: + - name: update_100_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_child_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=1000000, col_varchar10_id_1 = ? where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: RandomAString + params: [10, 10] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + - workload: UG4_3_no_update_to_constraint_on_conflict_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: INSERT INTO pkeyBigint1M_1 (col_bigint_card1_1,col_bigint_card2_1,col_bigint_card3_1,col_bigint_id_1,col_bigint_id_2,col_bigint_id_3,col_float2_1,col_float2_2,col_float5_1,col_float5_2,col_boolean_1,col_varchar10_id_1,col_varchar100_id_1,col_varchar100_id_2,col_varchar500_id_1) VALUES (1000000,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT (col_bigint_id_1) DO UPDATE SET col_varchar100_id_1 = 'updated_val' RETURNING * + bindings: + - util: RandomInt + params: [ 1000001,1001000 ] + - util: RandomInt + params: [ 1000001,1010000] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 2 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - util: RandomNoWithDecimalPoints + params: [ 1, 1000000, 5 ] + - util: RandomBoolean + - util: PrimaryStringGen + params: [1, 10] + - util: PrimaryStringGen + params: [1, 100] + - util: PrimaryStringGen + params: [1, 100] + - util: PrimaryStringGen + params: [1, 500] + + - workload: UG4_4_update_constraint_tbl1 + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE pkeyBigint1M_1 SET col_bigint_id_1=?, col_bigint_id_2=?,col_bigint_id_3=?, col_bigint_card1_1=3000000, col_float2_1 = col_float2_1 + 1 where col_bigint_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1000001, 2000000 ] + - util: PrimaryIntGen + params: [ 1, 1000000 ] \ No newline at end of file diff --git a/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG5_update_included_colm.yaml b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG5_update_included_colm.yaml new file mode 100644 index 000000000..cd9aa7475 --- /dev/null +++ b/config/yugabyte/regression_pipelines/write_workloads/yugabyte/updateG5_update_included_colm.yaml @@ -0,0 +1,206 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderThreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain : true +yaml_version: v1.1 +works: + work: + time_secs: 180 + rate: unlimited + warmup: 30 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_child_1 CASCADE; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_1; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_2; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_1 CASCADE; + + - CREATE TABLE UG5_cardinality_tbl1_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_card2_1) INCLUDE (col_bigint_card3_1); # update multiple(1000) rows with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_card1_1) INCLUDE (col_bigint_id_2); # update all(1M) rows with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_id_3) INCLUDE (col_int_id_4); # update single column + 1 row with point select + - CREATE INDEX ON UG5_cardinality_tbl1_1(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4); # update single column + 1M row + + - CREATE TABLE UG5_cardinality_tbl1_2(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)); + - CREATE INDEX ON UG5_cardinality_tbl1_2(col_bigint_id_5 ASC) INCLUDE (col_int_card1_4); # update single column + 1M row + + - CREATE TABLE UG5_cardinality_tbl2_1(col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_bigint_id_6 bigint, col_int_id_1 int, col_int_id_2 int, col_int_id_3 int, col_int_id_4 int, col_int_card1_1 int, col_int_card1_2 int, col_int_card1_3 int, col_int_card1_4 int, col_varchar500_id_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_2); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_3); + - CREATE UNIQUE INDEX ON UG5_cardinality_tbl2_1(col_bigint_id_4); + - CREATE INDEX ON UG5_cardinality_tbl2_1(col_int_id_1 ASC) INCLUDE (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4); + - CREATE TABLE UG5_cardinality_tbl2_child_1(col_bigint_id_1 bigint, col_bigint_id_2 bigint, col_bigint_id_3 bigint, col_bigint_id_4 bigint, col_bigint_id_5 bigint, col_varchar10_id_1 varchar(10), col_bigint_card1_1 bigint, col_bigint_card2_1 bigint, col_bigint_card3_1 bigint, PRIMARY KEY(col_bigint_id_1)); + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id1_fk FOREIGN KEY (col_bigint_id_2) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_1) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id2_fk FOREIGN KEY (col_bigint_id_3) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_2) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id3_fk FOREIGN KEY (col_bigint_id_4) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_3) ON UPDATE CASCADE; + - ALTER TABLE UG5_cardinality_tbl2_child_1 ADD CONSTRAINT UG5_cardinality_tbl2_child_id4_fk FOREIGN KEY (col_bigint_id_5) REFERENCES UG5_cardinality_tbl2_1 (col_bigint_id_4) ON UPDATE CASCADE; + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_2 ASC) INCLUDE (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5); #Update on referenced+included colmn + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_3 ASC); + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_4 ASC); + - CREATE INDEX ON UG5_cardinality_tbl2_child_1(col_bigint_id_5 ASC); + + cleanup: + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_child_1 CASCADE; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_1; + - DROP TABLE IF EXISTS UG5_cardinality_tbl1_2; + - DROP TABLE IF EXISTS UG5_cardinality_tbl2_1 CASCADE; + + loadRules: + + - table: UG5_cardinality_tbl1_ + count: 2 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: UG5_cardinality_tbl2_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000000,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000000,1010000] + - name: col_bigint_id_ + count: 6 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_id_ + count: 4 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_card1_ + count: 4 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + + - table: UG5_cardinality_tbl2_child_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 5 + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_varchar10_id_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_bigint_card1_ + count: 1 + util: OneNumberFromArray + params: [ 1000000 ] + - name: col_bigint_card2_ + count: 1 + util: RandomInt + params: [ 1000001,1001000 ] + - name: col_bigint_card3_ + count: 1 + util: RandomInt + params: [ 1000001,1010000] + + executeRules: + + # update single column + 1 row with point select + - workload: UG5_1_update_1_rows_1col_included_colm_point_select_filter + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_1 SET col_int_id_4=col_int_id_4+1 where col_bigint_id_3 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 1000000 ] + + # update single column + 1M row + - workload: UG5_2_update_1M_rows_1col_included_colm_range_filter + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_1 SET col_int_card1_4=col_int_card1_4+1 where col_bigint_id_5 > 0 + + # update single column + 1M row + - workload: UG5_3_update_1M_rows_1col_included_colm_range_filter_range_tbl + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl1_2 SET col_int_card1_4=col_int_card1_4+1 where col_bigint_id_5 > 0 + + + # Update on parent tbl 3cols which are included in an index (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4) referenced in child tbl (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5) and also part of an included colms of an index + - workload: UG5_4_update_parent_tbls_referenced_included_colm_1row + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl2_1 SET col_bigint_id_2=col_bigint_id_2+1000000, col_bigint_id_3=col_bigint_id_3+1000000, col_bigint_id_4=col_bigint_id_4+1000000 where col_int_id_1 = ? + bindings: + - util: PrimaryIntGen + params: [ 1, 800000 ] + + # Update on parent tbl 3cols which are included in an index (col_bigint_id_2,col_bigint_id_3,col_bigint_id_4) referenced in child tbl (col_bigint_id_3,col_bigint_id_4,col_bigint_id_5) and also part of an included colms of an index + - workload: UG5_5_update_parent_tbls_referenced_included_colm_1k_rows + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE UG5_cardinality_tbl2_1 SET col_bigint_id_2=col_bigint_id_2+1000000, col_bigint_id_3=col_bigint_id_3+1000000, col_bigint_id_4=col_bigint_id_4+1000000 where col_int_id_1 > 999000 + + - workload: UG5_6_update_child_tbls_referenced_included_colm_1k_rows + run: + - name: update_10_cols + weight: 100 + queries: + - query: UPDATE ug5_cardinality_tbl2_child_1 SET col_bigint_id_3=900000 where col_bigint_id_2<1001 diff --git a/config/yugabyte/sample_auctionmark_config.xml b/config/yugabyte/sample_auctionmark_config.xml new file mode 100644 index 000000000..4c5ebc8de --- /dev/null +++ b/config/yugabyte/sample_auctionmark_config.xml @@ -0,0 +1,58 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=require&load-balance=true&ApplicationName=auctionmark&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + 10 + + + 100 + + + 5 + + + 300 + + unlimited + 45, 10, 20, 2, 1, 4, 10, 5, 3 + + + + + + + GetItem + + + GetUserInfo + + + NewBid + + + NewComment + + + NewCommentResponse + + + NewFeedback + + + NewItem + + + NewPurchase + + + UpdateItem + + + diff --git a/config/yugabyte/sample_chbenchmark_config.xml b/config/yugabyte/sample_chbenchmark_config.xml new file mode 100644 index 000000000..614056d5b --- /dev/null +++ b/config/yugabyte/sample_chbenchmark_config.xml @@ -0,0 +1,161 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=chbenchmark-mixed&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 1 + + + + 1 + + + + + + + + + + + + + + + + + 200 + + + 45,43,4,4,4 + 3, 2, 3, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Q1 + + + Q2 + + + Q3 + + + Q4 + + + Q5 + + + Q6 + + + Q7 + + + Q8 + + + Q9 + + + Q10 + + + Q11 + + + Q12 + + + Q13 + + + Q14 + + + Q15 + + + Q16 + + + Q17 + + + Q18 + + + Q19 + + + Q20 + + + Q21 + + + Q22 + + + + + + + NewOrder + + + Payment + + + OrderStatus + + + Delivery + + + StockLevel + + + diff --git a/config/yugabyte/sample_copy_config.xml b/config/yugabyte/sample_copy_config.xml new file mode 100644 index 000000000..84ab606ce --- /dev/null +++ b/config/yugabyte/sample_copy_config.xml @@ -0,0 +1,18 @@ + + + + 1 + TRANSACTION_SERIALIZABLE + 128 + + YUGABYTE + org.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabytesslmode=disable&ApplicationName=copybenchmark + yugabyte + + + + yb.scan.PrimaryKeyScan + + + diff --git a/config/yugabyte/sample_epinions_config.xml b/config/yugabyte/sample_epinions_config.xml new file mode 100644 index 000000000..23bf43b42 --- /dev/null +++ b/config/yugabyte/sample_epinions_config.xml @@ -0,0 +1,57 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=epinions&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 100 + + + 5 + + + 300 + + unlimited + 10,10,10,10,10,10,10,10,20 + + + + + + + GetReviewItemById + + + GetReviewsByUser + + + GetAverageRatingByTrustedUser + + + GetItemAverageRating + + + GetItemReviewsByTrustedUser + + + UpdateUserName + + + UpdateItemTitle + + + UpdateReviewRating + + + UpdateTrustRating + + + diff --git a/config/yugabyte/sample_featurebench_config.xml b/config/yugabyte/sample_featurebench_config.xml new file mode 100644 index 000000000..4092166d0 --- /dev/null +++ b/config/yugabyte/sample_featurebench_config.xml @@ -0,0 +1,41 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/test_db?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + + 100 + 10 + 2 + 1000 + + + + + + + 1 + + 1 + + + + 1000 + 100 + + + + + + FeatureBench + + + \ No newline at end of file diff --git a/config/yugabyte/sample_featurebench_config.yaml b/config/yugabyte/sample_featurebench_config.yaml new file mode 100644 index 000000000..1c13c5c12 --- /dev/null +++ b/config/yugabyte/sample_featurebench_config.yaml @@ -0,0 +1,65 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: null +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +collect_pg_stat_statements: true +terminals: 1 +works: + work: + time_secs: 5 + active_terminals: 1 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS demo100col; + - CREATE TABLE demo100col (id INT, col1 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo100col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: col1 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: RangeScan1 + run: + - name: ReadQuery1 + weight: 100 + queries: + - query: INSERT INTO demo100col VALUES(?,?) + bindings: + - util: PrimaryIntGen + params: + - 10000 + - 100000 + - util: RandomAString + params: + - 5 + - 5 + - name: WriteQuery2 + weight: 50 + queries: + - query: UPDATE demo100col set col1 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 diff --git a/config/yugabyte/sample_hyadapt_config.xml b/config/yugabyte/sample_hyadapt_config.xml new file mode 100644 index 000000000..03e6ed306 --- /dev/null +++ b/config/yugabyte/sample_hyadapt_config.xml @@ -0,0 +1,119 @@ + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=hyadapt&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + 1 + + 1 + + + + 10000 + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + + + + + + MaxRecord1 + + + MaxRecord2 + + + MaxRecord3 + + + MaxRecord4 + + + MaxRecord5 + + + MaxRecord6 + + + MaxRecord7 + + + MaxRecord8 + + + MaxRecord9 + + + MaxRecord10 + + + + ReadRecord1 + + + ReadRecord2 + + + ReadRecord3 + + + ReadRecord4 + + + ReadRecord5 + + + ReadRecord6 + + + ReadRecord7 + + + ReadRecord8 + + + ReadRecord9 + + + ReadRecord10 + + + + + SumRecord1 + + + SumRecord2 + + + SumRecord3 + + + SumRecord4 + + + SumRecord5 + + + SumRecord6 + + + SumRecord7 + + + SumRecord8 + + + SumRecord9 + + + SumRecord10 + + + + diff --git a/config/yugabyte/sample_name_parameter.yaml b/config/yugabyte/sample_name_parameter.yaml new file mode 100644 index 000000000..82bcb1d22 --- /dev/null +++ b/config/yugabyte/sample_name_parameter.yaml @@ -0,0 +1,80 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://{{endpoint}}:5433/yugabyte?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true&load-balance=true +username: {{ username }} +password: {{ password }} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +use_dist_in_explain: true +yaml_version: v1.0 +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS THRPT_G1_range_table_1; + - CREATE TABLE THRPT_G1_range_table_1(id INT, region_id INT, category_id INT, subcategory_id INT, date_created DATE, status_code INT, priority_level INT, amount INT, quantity INT, PRIMARY KEY(id ASC)) SPLIT AT VALUES ((333333), (666666)); + - CREATE INDEX idx_partial_status ON THRPT_G1_range_table_1 (region_id ASC, category_id ASC, date_created ASC, id ASC) SPLIT AT VALUES ((33), (66)) WHERE status_code IN (1, 2, 3) and priority_level IN (1, 2, 3); + - CREATE index idx_covering_region_cat_amount_asc on thrpt_g1_range_table_1 (region_id ASC, category_id ASC, id ASC) INCLUDE (amount, quantity, status_code) SPLIT AT VALUES ((33), (66)); + + cleanup: + - DROP TABLE IF EXISTS THRPT_G1_range_table_1; + + loadRules: + - table: THRPT_G1_range_table_ + count: 1 + rows: 1000000 + columns: + - name: id + util: RandomUniqueIntGen + params: [1, 1000000] + - name: region_id + util: RandomNumber + params: [1, 100] + - name: category_id + util: RandomNumber + params: [1, 50] + - name: subcategory_id + util: RandomNumber + params: [1, 500] + - name: date_created + util: RandomDateBtwYears + params: [2000, 2025] + - name: status_code + util: RandomNumber + params: [1, 5] + - name: priority_level + util: RandomNumber + params: [1, 10] + - name: amount + util: RandomNumber + params: [1, 100000] + - name: quantity + util: RandomNumber + params: [1, 100000] + + executeRules: + - workload: THRPT_G1_seq_scan_BETWEEN + run: + - name: thrpt_wrkld_1 + weight: 100 + queries: + - query: select * from THRPT_G1_range_table_1 where amount BETWEEN ? AND ? + bindings: + - util: RandomNumber + params: + - 1 + - 90000 + referenceName: amount1 + - util: ExpressionEval + params: + - "amount1 + 10" diff --git a/config/yugabyte/sample_noop_config.xml b/config/yugabyte/sample_noop_config.xml new file mode 100644 index 000000000..e551099fe --- /dev/null +++ b/config/yugabyte/sample_noop_config.xml @@ -0,0 +1,33 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=noop&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + + 1 + + + 1 + + + + 1000 + 100 + + + + + + + NoOp + + + diff --git a/config/yugabyte/sample_otmetrics_config.xml b/config/yugabyte/sample_otmetrics_config.xml new file mode 100644 index 000000000..3987f1370 --- /dev/null +++ b/config/yugabyte/sample_otmetrics_config.xml @@ -0,0 +1,31 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=otmetrics&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + + 2048 + 0.1 + + + 1 + + + + unlimited + 100 + + + + + + + GetSessionRange + + + diff --git a/config/yugabyte/sample_perf_dataloader_config.yaml b/config/yugabyte/sample_perf_dataloader_config.yaml new file mode 100644 index 000000000..c7d5d1955 --- /dev/null +++ b/config/yugabyte/sample_perf_dataloader_config.yaml @@ -0,0 +1,8 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.25.127:5433/yugabyte?sslmode=require&reWriteBatchedInserts=true +username: yugabyte +password: Password@321 + +tablename: {{tableName}} +rows: {{rows}} diff --git a/config/yugabyte/sample_resourcestresser_config.xml b/config/yugabyte/sample_resourcestresser_config.xml new file mode 100644 index 000000000..d40f9d36a --- /dev/null +++ b/config/yugabyte/sample_resourcestresser_config.xml @@ -0,0 +1,48 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=resourcestresser&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 1 + + + 1 + + + + 10000 + 16.66,16.66,16.66,16.66,16.66,16.7 + + + + + + + CPU1 + + + CPU2 + + + IO1 + + + IO2 + + + Contention1 + + + Contention2 + + + + diff --git a/config/yugabyte/sample_seats_config.xml b/config/yugabyte/sample_seats_config.xml new file mode 100644 index 000000000..0af71c78c --- /dev/null +++ b/config/yugabyte/sample_seats_config.xml @@ -0,0 +1,49 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=require&load-balance=true&ApplicationName=seats&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + 10 + + + 100 + + + 5 + + + 300 + + unlimited + 10, 10, 35, 20, 10, 15 + + + + + + + DeleteReservation + + + FindFlights + + + FindOpenSeats + + + NewReservation + + + UpdateCustomer + + + UpdateReservation + + + diff --git a/config/yugabyte/sample_sibench_config.xml b/config/yugabyte/sample_sibench_config.xml new file mode 100644 index 000000000..3f31870b0 --- /dev/null +++ b/config/yugabyte/sample_sibench_config.xml @@ -0,0 +1,34 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=sibench&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + 1 + + + 1 + + + + unlimited + 50,50 + + + + + + + MinRecord + + + UpdateRecord + + + diff --git a/config/yugabyte/sample_smallbank_config.xml b/config/yugabyte/sample_smallbank_config.xml new file mode 100644 index 000000000..76e6815f5 --- /dev/null +++ b/config/yugabyte/sample_smallbank_config.xml @@ -0,0 +1,46 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=smallbank&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + 1 + + + 1 + + + + 100 + 15,15,15,25,15,15 + + + + + + + Amalgamate + + + Balance + + + DepositChecking + + + SendPayment + + + TransactSavings + + + WriteCheck + + + diff --git a/config/yugabyte/sample_tatp_config.xml b/config/yugabyte/sample_tatp_config.xml new file mode 100644 index 000000000..020ba8010 --- /dev/null +++ b/config/yugabyte/sample_tatp_config.xml @@ -0,0 +1,50 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=tatp&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 1 + + + 1 + + + + 10000 + 2, 35, 10, 35, 2, 14, 2 + + + + + + + DeleteCallForwarding + + + GetAccessData + + + GetNewDestination + + + GetSubscriberData + + + InsertCallForwarding + + + UpdateLocation + + + UpdateSubscriberData + + + diff --git a/config/yugabyte/sample_tpcc_config.xml b/config/yugabyte/sample_tpcc_config.xml new file mode 100644 index 000000000..6a4865da5 --- /dev/null +++ b/config/yugabyte/sample_tpcc_config.xml @@ -0,0 +1,54 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=tpcc&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 1 + + + 1 + + + + 10000 + 45,43,4,4,4 + + + + + + + NewOrder + + + + + Payment + + + + + OrderStatus + + + + + Delivery + + + + + StockLevel + + + + + diff --git a/config/yugabyte/sample_tpcds_config.xml b/config/yugabyte/sample_tpcds_config.xml new file mode 100644 index 000000000..df9ef7cda --- /dev/null +++ b/config/yugabyte/sample_tpcds_config.xml @@ -0,0 +1,4 @@ + + + + diff --git a/config/yugabyte/sample_tpch_config.xml b/config/yugabyte/sample_tpch_config.xml new file mode 100644 index 000000000..99b1fe785 --- /dev/null +++ b/config/yugabyte/sample_tpch_config.xml @@ -0,0 +1,136 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=tpch&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 1024 + + + 0.1 + + + 1 + + + true + unlimited + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + + + true + unlimited + 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 + + + true + unlimited + 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 + + + + + + + odd + 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 + + + even + 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 + + + + Q1 + 1 + + + Q2 + 2 + + + Q3 + 3 + + + Q4 + 4 + + + Q5 + 5 + + + Q6 + 6 + + + Q7 + 7 + + + Q8 + 8 + + + Q9 + 9 + + + Q10 + 10 + + + Q11 + 11 + + + Q12 + 12 + + + Q13 + 13 + + + Q14 + 14 + + + Q15 + 15 + + + Q16 + 16 + + + Q17 + 17 + + + Q18 + 18 + + + Q19 + 19 + + + Q20 + 20 + + + Q21 + 21 + + + Q22 + 22 + + + diff --git a/config/yugabyte/sample_twitter_config.xml b/config/yugabyte/sample_twitter_config.xml new file mode 100644 index 000000000..f82b7efda --- /dev/null +++ b/config/yugabyte/sample_twitter_config.xml @@ -0,0 +1,50 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=twitter&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 1 + + + + data/twitter/twitter_tweetids.txt + data/twitter/twitter_user_ids.txt + 10.1. + + + 1 + + + + 10000 + 1,1,7,90,1 + + + + + + + GetTweet + + + GetTweetsFromFollowing + + + GetFollowers + + + GetUserTweets + + + InsertTweet + + + diff --git a/config/yugabyte/sample_voter_config.xml b/config/yugabyte/sample_voter_config.xml new file mode 100644 index 000000000..84ed42279 --- /dev/null +++ b/config/yugabyte/sample_voter_config.xml @@ -0,0 +1,31 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=voter&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + 1 + + + 1 + + + + 10000 + 100 + + + + + + + Vote + + + diff --git a/config/yugabyte/sample_wikipedia_config.xml b/config/yugabyte/sample_wikipedia_config.xml new file mode 100644 index 000000000..fc927024e --- /dev/null +++ b/config/yugabyte/sample_wikipedia_config.xml @@ -0,0 +1,44 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=wikipedia&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 1 + + + 1 + + + + 1000 + 1,1,7,90,1 + + + + + + + AddWatchList + + + RemoveWatchList + + + UpdatePage + + + GetPageAnonymous + + + GetPageAuthenticated + + + diff --git a/config/yugabyte/sample_ycsb_config.xml b/config/yugabyte/sample_ycsb_config.xml new file mode 100644 index 000000000..ccf478879 --- /dev/null +++ b/config/yugabyte/sample_ycsb_config.xml @@ -0,0 +1,50 @@ + + + + + YUGABYTE + com.yugabyte.Driver + jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&load-balance=true&ApplicationName=ycsb&reWriteBatchedInserts=true + yugabyte + + TRANSACTION_REPEATABLE_READ + 128 + + + 1 + + + + + + 1 + + + + 10000 + 50,5,15,10,10,10 + + + + + + + ReadRecord + + + InsertRecord + + + ScanRecord + + + UpdateRecord + + + DeleteRecord + + + ReadModifyWriteRecord + + + diff --git a/config/yugabyte/scan_workload_varchar/postgres/cattribVG1_pg_pointlookup_increasing_columnwidth_impact.yaml b/config/yugabyte/scan_workload_varchar/postgres/cattribVG1_pg_pointlookup_increasing_columnwidth_impact.yaml new file mode 100644 index 000000000..aa58d2a9e --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/cattribVG1_pg_pointlookup_increasing_columnwidth_impact.yaml @@ -0,0 +1,271 @@ +#TEST FOR POSTGRES +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v500_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v500_tbl_1; + - CREATE TABLE pkey_hash_point_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar10_id_1)); + - CREATE TABLE pkey_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + - CREATE TABLE pkey_hash_point_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), PRIMARY KEY(col_varchar500_id_1)); + - CREATE TABLE indx_hash_point_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_hash_point_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100)); + - CREATE INDEX ON indx_hash_point_lookup_v10_tbl_1(col_varchar10_id_1); + - CREATE INDEX ON indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1); + - CREATE INDEX ON indx_hash_point_lookup_v500_tbl_1(col_varchar500_id_1); + loadRules: + - table: pkey_hash_point_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_hash_point_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + - table: indx_hash_point_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_hash_point_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + executeRules: + - workload: cattribVG1_pg_pkey_v10_hash_point_lookup + run: + - name: pkey_v10_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v10_tbl_1 where col_varchar10_id_1='500009aaaa' + - workload: cattribVG1_pg_pkey_v100_hash_point_lookup + run: + - name: pkey_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribVG1_pg_pkey_v500_hash_point_lookup + run: + - name: pkey_v500_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v500_tbl_1 where col_varchar500_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribVG1_pg_indx_v10_hash_point_lookup + run: + - name: indx_v10_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v10_tbl_1 where col_varchar10_id_1='500009aaaa' + - workload: cattribVG1_pg_indx_v100_hash_point_lookup + run: + - name: indx_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribVG1_pg_indx_v500_hash_point_lookup + run: + - name: indx_v500_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v500_tbl_1 where col_varchar500_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/cattribVG2_pg_rangelookup_increasing_columnwidth_impact.yaml b/config/yugabyte/scan_workload_varchar/postgres/cattribVG2_pg_rangelookup_increasing_columnwidth_impact.yaml new file mode 100644 index 000000000..2f98a8bb9 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/cattribVG2_pg_rangelookup_increasing_columnwidth_impact.yaml @@ -0,0 +1,271 @@ +#TEST FOR POSTGRES +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_range_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS pkey_range_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS pkey_range_lookup_v500_tbl_1; + - DROP TABLE IF EXISTS indx_range_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS indx_range_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS indx_range_lookup_v500_tbl_1; + - CREATE TABLE pkey_range_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar10_id_1)); + - CREATE TABLE pkey_range_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + - CREATE TABLE pkey_range_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), PRIMARY KEY(col_varchar500_id_1)); + - CREATE TABLE indx_range_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_range_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_range_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100)); + - CREATE INDEX ON indx_range_lookup_v10_tbl_1(col_varchar10_id_1); + - CREATE INDEX ON indx_range_lookup_v100_tbl_1(col_varchar100_id_1); + - CREATE INDEX ON indx_range_lookup_v500_tbl_1(col_varchar500_id_1); + loadRules: + - table: pkey_range_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_range_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_range_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + - table: indx_range_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_range_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_range_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + executeRules: + - workload: cattribVG2_pg_pkey_v10_hash_range_lookup + run: + - name: pkey_v10_range_lookup_test + weight: 100 + queries: + - query: select * from pkey_range_lookup_v10_tbl_1 where col_varchar10_id_1>'0' + - workload: cattribVG2_pg_pkey_v100_hash_range_lookup + run: + - name: pkey_v100_range_lookup_test + weight: 100 + queries: + - query: select * from pkey_range_lookup_v100_tbl_1 where col_varchar100_id_1>'0' + - workload: cattribVG2_pg_pkey_v500_hash_range_lookup + run: + - name: pkey_v500_range_lookup_test + weight: 100 + queries: + - query: select * from pkey_range_lookup_v500_tbl_1 where col_varchar500_id_1>'0' + - workload: cattribVG2_pg_indx_v10_hash_range_lookup + run: + - name: indx_v10_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_range_lookup_v10_tbl_1 where col_varchar10_id_1>'0' + - workload: cattribVG2_pg_indx_v100_hash_range_lookup + run: + - name: indx_v100_range_lookup_test + weight: 100 + queries: + - query: select * from indx_range_lookup_v100_tbl_1 where col_varchar100_id_1>'0' + - workload: cattribVG2_pg_indx_v500_hash_range_lookup + run: + - name: indx_v500_range_lookup_test + weight: 100 + queries: + - query: select * from indx_range_lookup_v500_tbl_1 where col_varchar500_id_1>'0' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/cattribVG3_pg_datatype_projection_impact.yaml b/config/yugabyte/scan_workload_varchar/postgres/cattribVG3_pg_datatype_projection_impact.yaml new file mode 100644 index 000000000..7cccc8d6c --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/cattribVG3_pg_datatype_projection_impact.yaml @@ -0,0 +1,173 @@ +#TEST FOR POSTGRES +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_point_lookup_tbl_1; + - DROP TABLE IF EXISTS pkey_range_lookup_tbl_1; + - CREATE TABLE pkey_hash_point_lookup_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_range_lookup_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)) + loadRules: + - table: pkey_hash_point_lookup_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_range_lookup_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: attbG3_ybc_datatype_proj_indexed_bigint_pointSelect + run: + - name: ybc_datatype_proj_indexed_bigint + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_bigint_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_bigint_pointSelect + weight: 100 + queries: + - query: select col_bigint_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_float_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_float_pointSelect + weight: 100 + queries: + - query: select col_float5_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar10_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_varchar10_pointSelect + weight: 100 + queries: + - query: select col_varchar10_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar100_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_varchar100_pointSelect + weight: 100 + queries: + - query: select col_varchar100_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar500_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_varchar500_pointSelect + weight: 100 + queries: + - query: select col_varchar500_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + + + - workload: attbG3_ybc_datatype_proj_indexed_bigint_rangeScan + run: + - name: ybc_datatype_proj_indexed_bigint_rangeScan + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_bigint_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_bigint_rangeScan + weight: 100 + queries: + - query: select col_bigint_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_float_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_float_rangeScan + weight: 100 + queries: + - query: select col_float5_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar10_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_varchar10_rangeScan + weight: 100 + queries: + - query: select col_varchar10_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar100_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_varchar100_rangeScan + weight: 100 + queries: + - query: select col_varchar100_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar500_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_varchar500_rangeScan + weight: 100 + queries: + - query: select col_varchar500_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG11_pg_pkey_rangescan_join.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG11_pg_pkey_rangescan_join.yaml new file mode 100644 index 000000000..aae21a5c2 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG11_pg_pkey_rangescan_join.yaml @@ -0,0 +1,94 @@ +#TEST FOR POSTGRES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Join + Primary Key: Range + Join condition: Range Primary key. + Filter: range scan +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 10 rows +# Filter condition returns 1000 rows +# Filter condition returns 100000 rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + - CREATE TABLE pkey_rangescan_join_2(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG11_pg_pkey_rangescan_join_fetch_1row + run: + - name: pkey_rangescan_join_fetch_1row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'9a'; + - workload: scanG11_pg_pkey_rangescan_join_fetch_10row + run: + - name: pkey_rangescan_join_fetch_10row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'999995'; + - workload: scanG11_pg_pkey_rangescan_join_fetch_1000row + run: + - name: pkey_rangescan_join_fetch_1000row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'9990bb'; + - workload: scanG11_pg_pkey_rangescan_join_fetch_100000row + run: + - name: pkey_rangescan_join_fetch_100000row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'91'; \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG1_pg_hash_pointlookup_primarykey_vs_index.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG1_pg_hash_pointlookup_primarykey_vs_index.yaml new file mode 100644 index 000000000..6f5171cd8 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG1_pg_hash_pointlookup_primarykey_vs_index.yaml @@ -0,0 +1,118 @@ +#TEST FOR POSTGRES +#GOAL1 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Range Primary lookup vs Range Index lookup (Index Scan) +#TESTS: +# Time to fetch 1 row based (= operator) on a predicate column which is Range Primary key +# Time to fetch 1 row based (= operator) on a predicate column which is Range indexed +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v100_tbl_1; + - CREATE TABLE pkey_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + - CREATE TABLE indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE INDEX ON indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1); + loadRules: + - table: pkey_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanVG1_pg_pkey_v100_hash_point_lookup + run: + - name: pkey_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + + - workload: scanVG1_pg_indx_v100_hash_point_lookup + run: + - name: indx_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG2_pg_pkey_rangeScan_increasingRows.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG2_pg_pkey_rangeScan_increasingRows.yaml new file mode 100755 index 000000000..87291128e --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG2_pg_pkey_rangeScan_increasingRows.yaml @@ -0,0 +1,93 @@ +#TEST FOR POSTGRES +#GOAL2 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_lookup_v100_tbl_1; + - CREATE TABLE pkey_rangescan_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + loadRules: + - table: pkey_rangescan_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanVG2_pg_pkey_rangescan_varying_rows_1row + run: + - name: pkey_rangescan_1row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'9a' + - workload: scanVG2_pg_pkey_rangescan_varying_rows_100Krows + run: + - name: pkey_rangescan_100krow_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'91' + - workload: scanVG2_pg_pkey_rangescan_varying_rows_500Krows + run: + - name: pkey_rangescan_500krow_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'55' + - workload: scanVG2_pg_pkey_rangescan_varying_rows_1Mrows + run: + - name: pkey_rangescan_1Mrow_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'0' diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG3_pg_index_rangeScan_increasingRows.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG3_pg_index_rangeScan_increasingRows.yaml new file mode 100644 index 000000000..889ff85e4 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG3_pg_index_rangeScan_increasingRows.yaml @@ -0,0 +1,94 @@ +#TEST FOR POSTGRES +#GOAL3 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Indexed column range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indx_hash_point_lookup_v100_tbl_1; + - CREATE TABLE indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE INDEX ON indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1); + loadRules: + - table: indx_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanVG3_pg_indx_rangescan_varying_rows_1row + run: + - name: indx_rangescan_1row_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'9a' + - workload: scanVG3_pg_indx_rangescan_varying_rows_100Krows + run: + - name: indx_rangescan_100krow_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'91' + - workload: scanVG3_pg_indx_rangescan_varying_rows_500Krows + run: + - name: indx_rangescan_500krow_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'55' + - workload: scanVG3_pg_indx_rangescan_varying_rows_1Mrows + run: + - name: indx_rangescan_1Mrow_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'0' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG4_pg_pkey_rangeScan_INclause_increasingRows.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG4_pg_pkey_rangeScan_INclause_increasingRows.yaml new file mode 100644 index 000000000..46d130f3e --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG4_pg_pkey_rangeScan_INclause_increasingRows.yaml @@ -0,0 +1,108 @@ +#TEST FOR POSTGRES +#GOAL4 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key IN scan - Varying number of IN options +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 10 rows +# Range scan time to fetch 100 rows +# Range scan time to fetch 1000 rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + - CREATE TABLE pkey_rangescan_for_INclause_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + loadRules: + - table: pkey_rangescan_for_INclause_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanVG4_pg_pkey_INclause_rangescan_increasing_rows_1row + run: + - name: pkey_INclause_rangescan_increasing_rows_1row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?) + bindings: + count: 1 + util: RandomPKString + params: [ 1, 1000000 , 100] + - workload: scanVG4_pg_pkey_INclause_rangescan_increasing_rows_10row + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10 + util: RandomPKString + params: [ 1, 1000000 , 100] + - workload: scanVG4_pg_pkey_INclause_rangescan_increasing_rows_100row + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 100 + util: RandomPKString + params: [ 1, 1000000 , 100] + - workload: scanVG4_pg_pkey_INclause_rangescan_increasing_rows_1000row + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomPKString + params: [ 1, 1000000 , 100] \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG5_pg_pkey_hash_pointLookup_increasingColumn.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG5_pg_pkey_hash_pointLookup_increasingColumn.yaml new file mode 100644 index 000000000..fb023b5bf --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG5_pg_pkey_hash_pointLookup_increasingColumn.yaml @@ -0,0 +1,114 @@ +#TEST FOR POSTGRES REGULAR TABLES +#GOAL5 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Point lookup with different number of return columns (range primary key) +#TESTS: +# Time to fetch 2 column from schema that has 2 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 25 column from schema that has 25 column +# Time to fetch 100 column from schema that has 100 column + +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_2column_1; + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_100column_1; + - CREATE TABLE pkey_pointlookup_fullTable_2column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_pointlookup_fullTable_10column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_pointlookup_fullTable_25column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_pointlookup_fullTable_100column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,col_bigint_25 bigint,col_bigint_26 bigint,col_bigint_27 bigint,col_bigint_28 bigint,col_bigint_29 bigint,col_bigint_30 bigint,col_bigint_31 bigint,col_bigint_32 bigint,col_bigint_33 bigint,col_bigint_34 bigint,col_bigint_35 bigint,col_bigint_36 bigint,col_bigint_37 bigint,col_bigint_38 bigint,col_bigint_39 bigint,col_bigint_40 bigint,col_bigint_41 bigint,col_bigint_42 bigint,col_bigint_43 bigint,col_bigint_44 bigint,col_bigint_45 bigint,col_bigint_46 bigint,col_bigint_47 bigint,col_bigint_48 bigint,col_bigint_49 bigint,col_bigint_50 bigint,col_bigint_51 bigint,col_bigint_52 bigint,col_bigint_53 bigint,col_bigint_54 bigint,col_bigint_55 bigint,col_bigint_56 bigint,col_bigint_57 bigint,col_bigint_58 bigint,col_bigint_59 bigint,col_bigint_60 bigint,col_bigint_61 bigint,col_bigint_62 bigint,col_bigint_63 bigint,col_bigint_64 bigint,col_bigint_65 bigint,col_bigint_66 bigint,col_bigint_67 bigint,col_bigint_68 bigint,col_bigint_69 bigint,col_bigint_70 bigint,col_bigint_71 bigint,col_bigint_72 bigint,col_bigint_73 bigint,col_bigint_74 bigint,col_bigint_75 bigint,col_bigint_76 bigint,col_bigint_77 bigint,col_bigint_78 bigint,col_bigint_79 bigint,col_bigint_80 bigint,col_bigint_81 bigint,col_bigint_82 bigint,col_bigint_83 bigint,col_bigint_84 bigint,col_bigint_85 bigint,col_bigint_86 bigint,col_bigint_87 bigint,col_bigint_88 bigint,col_bigint_89 bigint,col_bigint_90 bigint,col_bigint_91 bigint,col_bigint_92 bigint,col_bigint_93 bigint,col_bigint_94 bigint,col_bigint_95 bigint,col_bigint_96 bigint,col_bigint_97 bigint,col_bigint_98 bigint,col_bigint_99 bigint,PRIMARY KEY(col_varchar_id_1)); + + loadRules: + - table: pkey_pointlookup_fullTable_2column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 1 + util: RandomNumber + params: [1, 1000000] + - table: pkey_pointlookup_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_pointlookup_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 24 + util: RandomNumber + params: [1, 1000000] + - table: pkey_pointlookup_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + + executeRules: + - workload: scanVG5_pg_pkey_hash_pointLookup_table2column_fetch2column + run: + - name: pkey_hash_pointLookup_table2column_fetch1column + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_2column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: scanVG5_pg_pkey_hash_pointLookup_table10column_fetch10column + run: + - name: pkey_hash_pointLookup_table10column_fetch10column + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_10column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: scanVG5_pg_pkey_hash_pointLookup_table25column_fetch25column + run: + - name: pkey_hash_pointLookup_table25column_fetch25column + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_25column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: scanVG5_pg_pkey_hash_pointLookup_table100column_fetch100column + run: + - name: pkey_rangescan_fullTable_table100column_fetch100column_1MRowsFetched + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_100column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG7_pg_pkey_rangescan_fullTableScan_increasingColumn.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG7_pg_pkey_rangescan_fullTableScan_increasingColumn.yaml new file mode 100644 index 000000000..e49b0f6c8 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG7_pg_pkey_rangescan_fullTableScan_increasingColumn.yaml @@ -0,0 +1,112 @@ +#TEST FOR POSTGRES REGULAR TABLES +#GOAL7 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Range lookup with different number of return columns (Range primary key) (full table scan) +#TESTS: +# Time to fetch 2 column from schema that has 2 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 25 column from schema that has 25 column +# Time to fetch 100 column from schema that has 100 column +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_2column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + - CREATE TABLE pkey_rangescan_fullTable_2column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_10column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_25column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_rangescan_fullTable_100column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,col_bigint_25 bigint,col_bigint_26 bigint,col_bigint_27 bigint,col_bigint_28 bigint,col_bigint_29 bigint,col_bigint_30 bigint,col_bigint_31 bigint,col_bigint_32 bigint,col_bigint_33 bigint,col_bigint_34 bigint,col_bigint_35 bigint,col_bigint_36 bigint,col_bigint_37 bigint,col_bigint_38 bigint,col_bigint_39 bigint,col_bigint_40 bigint,col_bigint_41 bigint,col_bigint_42 bigint,col_bigint_43 bigint,col_bigint_44 bigint,col_bigint_45 bigint,col_bigint_46 bigint,col_bigint_47 bigint,col_bigint_48 bigint,col_bigint_49 bigint,col_bigint_50 bigint,col_bigint_51 bigint,col_bigint_52 bigint,col_bigint_53 bigint,col_bigint_54 bigint,col_bigint_55 bigint,col_bigint_56 bigint,col_bigint_57 bigint,col_bigint_58 bigint,col_bigint_59 bigint,col_bigint_60 bigint,col_bigint_61 bigint,col_bigint_62 bigint,col_bigint_63 bigint,col_bigint_64 bigint,col_bigint_65 bigint,col_bigint_66 bigint,col_bigint_67 bigint,col_bigint_68 bigint,col_bigint_69 bigint,col_bigint_70 bigint,col_bigint_71 bigint,col_bigint_72 bigint,col_bigint_73 bigint,col_bigint_74 bigint,col_bigint_75 bigint,col_bigint_76 bigint,col_bigint_77 bigint,col_bigint_78 bigint,col_bigint_79 bigint,col_bigint_80 bigint,col_bigint_81 bigint,col_bigint_82 bigint,col_bigint_83 bigint,col_bigint_84 bigint,col_bigint_85 bigint,col_bigint_86 bigint,col_bigint_87 bigint,col_bigint_88 bigint,col_bigint_89 bigint,col_bigint_90 bigint,col_bigint_91 bigint,col_bigint_92 bigint,col_bigint_93 bigint,col_bigint_94 bigint,col_bigint_95 bigint,col_bigint_96 bigint,col_bigint_97 bigint,col_bigint_98 bigint,col_bigint_99 bigint,PRIMARY KEY(col_varchar_id_1)); + + loadRules: + - table: pkey_rangescan_fullTable_2column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 1 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 24 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanVG7_pg_pkey_rangescan_fullTable_table2column_fetch2column + run: + - name: pkey_rangescan_fullTable_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_2column_1 where col_varchar_id_1>'0' + - workload: scanVG7_pg_pkey_rangescan_fullTable_table10column_fetch10column + run: + - name: pkey_rangescan_fullTable_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_10column_1 where col_varchar_id_1>'0' + - workload: scanVG7_pg_pkey_rangescan_fullTable_table25column_fetch25column + run: + - name: pkey_rangescan_fullTable_table25column_fetch25column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'0' + - workload: scanVG7_pg_pkey_rangescan_fullTable_table100column_fetch100column + run: + - name: pkey_rangescan_halfTable_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_100column_1 where col_varchar_id_1>'0' diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG8_pg_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG8_pg_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..8706bc8e2 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG8_pg_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,159 @@ +#TEST FOR POSTGRES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Scan of a non indexed column which returns 0 row (Whole table scan) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_5M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_10M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + loadRules: + - table: noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanVG8_pg_noIndex_fullTable_seqScan_1M_rows + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select * from noIndex_fullTable_seqScan_1M_rows_1 where col_varchar100_id_1>'a' + - workload: scanVG8_pg_noIndex_fullTable_seqScan_5M_rows + run: + - name: noIndex_fullTable_seqScan_5M_rows_test + weight: 100 + queries: + - query: select * from noIndex_fullTable_seqScan_5M_rows_1 where col_varchar100_id_1>'a' + - workload: scanVG8_pg_noIndex_fullTable_seqScan_10M_rows + run: + - name: noIndex_fullTable_seqScan_10M_rows_test + weight: 100 + queries: + - query: select * from noIndex_fullTable_seqScan_10M_rows_1 where col_varchar100_id_1>'a' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/postgres/scanVG9_pg_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/scan_workload_varchar/postgres/scanVG9_pg_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..7ac16a94c --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/postgres/scanVG9_pg_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,159 @@ +#TEST FOR POSTGRES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# count(*) query (Pushdown to docdb) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://sgupta-pg-i-westc-validate.cbtcvpszcgdq.us-west-2.rds.amazonaws.com:5432/postgres?sslmode=require +username: postgres +password: Password321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE count_noIndex_fullTable_seqScan_1M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_5M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_10M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + loadRules: + - table: count_noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanVG9_pg_count_noIndex_fullTable_seqScan_1M_rows + run: + - name: count_noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select count(*) from count_noIndex_fullTable_seqScan_1M_rows_1 + - workload: scanVG9_pg_count_noIndex_fullTable_seqScan_5M_rows + run: + - name: count_noIndex_fullTable_seqScan_5M_rows_test + weight: 100 + queries: + - query: select count(*) from count_noIndex_fullTable_seqScan_5M_rows_1 + - workload: scanVG9_pg_count_noIndex_fullTable_seqScan_10M_rows + run: + - name: count_noIndex_fullTable_seqScan_10M_rows_test + weight: 100 + queries: + - query: select count(*) from count_noIndex_fullTable_seqScan_10M_rows_1 \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG1_ybc_pointlookup_increasing_columnwidth_impact.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG1_ybc_pointlookup_increasing_columnwidth_impact.yaml new file mode 100644 index 000000000..940287bb2 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG1_ybc_pointlookup_increasing_columnwidth_impact.yaml @@ -0,0 +1,272 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v500_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v500_tbl_1; + - CREATE TABLE pkey_hash_point_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar10_id_1)); + - CREATE TABLE pkey_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + - CREATE TABLE pkey_hash_point_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), PRIMARY KEY(col_varchar500_id_1)); + - CREATE TABLE indx_hash_point_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_hash_point_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100)); + - CREATE INDEX ON indx_hash_point_lookup_v10_tbl_1(col_varchar10_id_1 ASC); + - CREATE INDEX ON indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 ASC); + - CREATE INDEX ON indx_hash_point_lookup_v500_tbl_1(col_varchar500_id_1 ASC); + loadRules: + - table: pkey_hash_point_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_hash_point_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + - table: indx_hash_point_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_hash_point_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + executeRules: + - workload: cattribVG1_ybc_pkey_v10_hash_point_lookup + run: + - name: pkey_v10_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v10_tbl_1 where col_varchar10_id_1='500009aaaa' + - workload: cattribVG1_ybc_pkey_v100_hash_point_lookup + run: + - name: pkey_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribVG1_ybc_pkey_v500_hash_point_lookup + run: + - name: pkey_v500_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v500_tbl_1 where col_varchar500_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribVG1_ybc_indx_v10_hash_point_lookup + run: + - name: indx_v10_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v10_tbl_1 where col_varchar10_id_1='500009aaaa' + - workload: cattribVG1_ybc_indx_v100_hash_point_lookup + run: + - name: indx_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: cattribVG1_ybc_indx_v500_hash_point_lookup + run: + - name: indx_v500_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v500_tbl_1 where col_varchar500_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG2_ybc_rangelookup_increasing_columnwidth_impact.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG2_ybc_rangelookup_increasing_columnwidth_impact.yaml new file mode 100644 index 000000000..5c74f807c --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG2_ybc_rangelookup_increasing_columnwidth_impact.yaml @@ -0,0 +1,272 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_range_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS pkey_range_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS pkey_range_lookup_v500_tbl_1; + - DROP TABLE IF EXISTS indx_range_lookup_v10_tbl_1; + - DROP TABLE IF EXISTS indx_range_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS indx_range_lookup_v500_tbl_1; + - CREATE TABLE pkey_range_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar10_id_1 ASC)); + - CREATE TABLE pkey_range_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1 ASC)); + - CREATE TABLE pkey_range_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), PRIMARY KEY(col_varchar500_id_1 ASC)); + - CREATE TABLE indx_range_lookup_v10_tbl_1(col_varchar10_id_1 varchar(10), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_range_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE indx_range_lookup_v500_tbl_1(col_varchar500_id_1 varchar(500), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100)); + - CREATE INDEX ON indx_range_lookup_v10_tbl_1(col_varchar10_id_1 ASC); + - CREATE INDEX ON indx_range_lookup_v100_tbl_1(col_varchar100_id_1 ASC); + - CREATE INDEX ON indx_range_lookup_v500_tbl_1(col_varchar500_id_1 ASC); + loadRules: + - table: pkey_range_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_range_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_range_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + - table: indx_range_lookup_v10_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar10_id_ + count: 1 + util: PrimaryStringGen + params: [1, 10] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_range_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: indx_range_lookup_v500_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar500_id_ + count: 1 + util: PrimaryStringGen + params: [1, 500] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + + executeRules: + - workload: cattribVG2_ybc_pkey_v10_hash_point_lookup + run: + - name: pkey_v10_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_range_lookup_v10_tbl_1 where col_varchar10_id_1>'0' + - workload: cattribVG2_ybc_pkey_v100_hash_point_lookup + run: + - name: pkey_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_range_lookup_v100_tbl_1 where col_varchar100_id_1>'0' + - workload: cattribVG2_ybc_pkey_v500_hash_point_lookup + run: + - name: pkey_v500_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_range_lookup_v500_tbl_1 where col_varchar500_id_1>'0' + - workload: cattribVG2_ybc_indx_v10_hash_point_lookup + run: + - name: indx_v10_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_range_lookup_v10_tbl_1 where col_varchar10_id_1>'0' + - workload: cattribVG2_ybc_indx_v100_hash_point_lookup + run: + - name: indx_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_range_lookup_v100_tbl_1 where col_varchar100_id_1>'0' + - workload: cattribVG2_ybc_indx_v500_hash_point_lookup + run: + - name: indx_v500_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_range_lookup_v500_tbl_1 where col_varchar500_id_1>'0' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG3_ybc_datatype_projection_impact.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG3_ybc_datatype_projection_impact.yaml new file mode 100644 index 000000000..fdd2717d9 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/cattribVG3_ybc_datatype_projection_impact.yaml @@ -0,0 +1,173 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_point_lookup_tbl_1; + - DROP TABLE IF EXISTS pkey_range_lookup_tbl_1; + - CREATE TABLE pkey_hash_point_lookup_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1)); + - CREATE TABLE pkey_range_lookup_tbl_1(col_bigint_id_1 bigint, col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_bigint_id_1 ASC)) + loadRules: + - table: pkey_hash_point_lookup_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: pkey_range_lookup_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_bigint_id_ + count: 1 + util: PrimaryIntGen + params: [1, 1000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: attbG3_ybc_datatype_proj_indexed_bigint_pointSelect + run: + - name: ybc_datatype_proj_indexed_bigint + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_bigint_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_bigint_pointSelect + weight: 100 + queries: + - query: select col_bigint_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_float_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_float_pointSelect + weight: 100 + queries: + - query: select col_float5_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar10_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_varchar10_pointSelect + weight: 100 + queries: + - query: select col_varchar10_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar100_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_varchar100_pointSelect + weight: 100 + queries: + - query: select col_varchar100_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar500_pointSelect + run: + - name: ybc_datatype_proj_nonindexed_varchar500_pointSelect + weight: 100 + queries: + - query: select col_varchar500_1 from pkey_hash_point_lookup_tbl_1 where col_bigint_id_1=500009 + + + - workload: attbG3_ybc_datatype_proj_indexed_bigint_rangeScan + run: + - name: ybc_datatype_proj_indexed_bigint_rangeScan + weight: 100 + queries: + - query: select col_bigint_id_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_bigint_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_bigint_rangeScan + weight: 100 + queries: + - query: select col_bigint_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_float_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_float_rangeScan + weight: 100 + queries: + - query: select col_float5_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar10_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_varchar10_rangeScan + weight: 100 + queries: + - query: select col_varchar10_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar100_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_varchar100_rangeScan + weight: 100 + queries: + - query: select col_varchar100_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 + - workload: attbG3_ybc_datatype_proj_nonindexed_varchar500_rangeScan + run: + - name: ybc_datatype_proj_nonindexed_varchar500_rangeScan + weight: 100 + queries: + - query: select col_varchar500_1 from pkey_range_lookup_tbl_1 where col_bigint_id_1>1 \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG11_ybc_pkey_rangescan_join.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG11_ybc_pkey_rangescan_join.yaml new file mode 100644 index 000000000..6e9c615ed --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG11_ybc_pkey_rangescan_join.yaml @@ -0,0 +1,95 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL11 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Join + Primary Key: Range + Join condition: Range Primary key. + Filter: range scan +#TESTS: +# Filter condition returns 1 rows +# Filter condition returns 10 rows +# Filter condition returns 1000 rows +# Filter condition returns 100000 rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_join_1; + - DROP TABLE IF EXISTS pkey_rangescan_join_2; + - CREATE TABLE pkey_rangescan_join_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1 ASC)); + - CREATE TABLE pkey_rangescan_join_2(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1 ASC)); + loadRules: + - table: pkey_rangescan_join_ + count: 2 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanG11_colo_pkey_rangescan_join_fetch_1row + run: + - name: pkey_rangescan_join_fetch_1row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'9a'; + - workload: scanG11_colo_pkey_rangescan_join_fetch_10row + run: + - name: pkey_rangescan_join_fetch_10row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'999995'; + - workload: scanG11_colo_pkey_rangescan_join_fetch_1000row + run: + - name: pkey_rangescan_join_fetch_1000row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'9990bb'; + - workload: scanG11_colo_pkey_rangescan_join_fetch_100000row + run: + - name: pkey_rangescan_join_fetch_100000row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_join_1 JOIN pkey_rangescan_join_2 on pkey_rangescan_join_1.col_varchar100_id_1=pkey_rangescan_join_2.col_varchar100_id_1 and pkey_rangescan_join_1.col_varchar100_id_1>'91'; \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG1_ybc_hash_pointlookup_primarykey_vs_index.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG1_ybc_hash_pointlookup_primarykey_vs_index.yaml new file mode 100644 index 000000000..2691a2d4e --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG1_ybc_hash_pointlookup_primarykey_vs_index.yaml @@ -0,0 +1,120 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL1 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Range Primary lookup vs Range Index lookup (Index Scan) +#TESTS: +# Time to fetch 1 row based (= operator) on a predicate column which is Range Primary key +# Time to fetch 1 row based (= operator) on a predicate column which is Range indexed +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_hash_point_lookup_v100_tbl_1; + - DROP TABLE IF EXISTS indx_hash_point_lookup_v100_tbl_1; + - CREATE TABLE pkey_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1)); + - CREATE TABLE indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE INDEX ON indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1); + loadRules: + + - table: pkey_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + - table: indx_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanVG1_ybc_pkey_v100_hash_point_lookup + run: + - name: pkey_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from pkey_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: scanVG1_ybc_indx_v100_hash_point_lookup + run: + - name: indx_v100_hash_point_lookup_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1='500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG2_ybc_pkey_rangeScan_increasingRows.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG2_ybc_pkey_rangeScan_increasingRows.yaml new file mode 100755 index 000000000..c6dc1199f --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG2_ybc_pkey_rangeScan_increasingRows.yaml @@ -0,0 +1,94 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL2 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_lookup_v100_tbl_1; + - CREATE TABLE pkey_rangescan_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1 ASC)); + loadRules: + - table: pkey_rangescan_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanVG2_ybc_pkey_rangescan_varying_rows_1row + run: + - name: pkey_rangescan_1row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'9a' + - workload: scanVG2_ybc_pkey_rangescan_varying_rows_100Krows + run: + - name: pkey_rangescan_100krow_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'91' + - workload: scanVG2_ybc_pkey_rangescan_varying_rows_500Krows + run: + - name: pkey_rangescan_500krow_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'55' + - workload: scanVG2_ybc_pkey_rangescan_varying_rows_1Mrows + run: + - name: pkey_rangescan_1Mrow_test + weight: 100 + queries: + - query: select * from pkey_rangescan_lookup_v100_tbl_1 where col_varchar100_id_1>'0' diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG3_ybc_index_rangeScan_increasingRows.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG3_ybc_index_rangeScan_increasingRows.yaml new file mode 100644 index 000000000..f2fa82c61 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG3_ybc_index_rangeScan_increasingRows.yaml @@ -0,0 +1,95 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL3 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Indexed column range scan - Varying number of rows +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 100k rows +# Range scan time to fetch 500k rows +# Range scan time to fetch 1M rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS indx_hash_point_lookup_v100_tbl_1; + - CREATE TABLE indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_bigint_6 bigint,col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar500_1 varchar(500)); + - CREATE INDEX ON indx_hash_point_lookup_v100_tbl_1(col_varchar100_id_1 ASC); + loadRules: + - table: indx_hash_point_lookup_v100_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 6 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 1 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + + executeRules: + - workload: scanVG3_ybc_indx_rangescan_varying_rows_1row + run: + - name: indx_rangescan_1row_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'9a' + - workload: scanVG3_ybc_indx_rangescan_varying_rows_100Krows + run: + - name: indx_rangescan_100krow_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'91' + - workload: scanVG3_ybc_indx_rangescan_varying_rows_500Krows + run: + - name: indx_rangescan_500krow_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'55' + - workload: scanVG3_ybc_indx_rangescan_varying_rows_1Mrows + run: + - name: indx_rangescan_1Mrow_test + weight: 100 + queries: + - query: select * from indx_hash_point_lookup_v100_tbl_1 where col_varchar100_id_1>'0' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG4_ybc_pkey_rangeScan_INclause_increasingRows.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG4_ybc_pkey_rangeScan_INclause_increasingRows.yaml new file mode 100644 index 000000000..2493b72b5 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG4_ybc_pkey_rangeScan_INclause_increasingRows.yaml @@ -0,0 +1,109 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL4 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Primary key IN scan - Varying number of IN options +#TESTS: +# Range scan time to fetch 1 rows +# Range scan time to fetch 10 rows +# Range scan time to fetch 100 rows +# Range scan time to fetch 1000 rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_for_INclause_tbl_1; + - CREATE TABLE pkey_rangescan_for_INclause_tbl_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500), PRIMARY KEY(col_varchar100_id_1 ASC)); + loadRules: + - table: pkey_rangescan_for_INclause_tbl_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanVG4_ybc_pkey_INclause_rangescan_increasing_rows_1row + run: + - name: pkey_INclause_rangescan_increasing_rows_1row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?) + bindings: + count: 1 + util: RandomPKString + params: [ 1, 1000000 , 100] + - workload: scanVG4_ybc_pkey_INclause_rangescan_increasing_rows_10row + run: + - name: pkey_INclause_rangescan_increasing_rows_10row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?,?,?,?,?,?,?,?,?,?) + bindings: + count: 10 + util: RandomPKString + params: [ 1, 1000000 , 100] + - workload: scanVG4_ybc_pkey_INclause_rangescan_increasing_rows_100row + run: + - name: pkey_INclause_rangescan_increasing_rows_100row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 100 + util: RandomPKString + params: [ 1, 1000000 , 100] + - workload: scanVG4_ybc_pkey_INclause_rangescan_increasing_rows_1000row + run: + - name: pkey_INclause_rangescan_increasing_rows_1000row_test + weight: 100 + queries: + - query: select * from pkey_rangescan_for_INclause_tbl_1 where col_varchar100_id_1 IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + bindings: + count: 1000 + util: RandomPKString + params: [ 1, 1000000 , 100] \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG5_ybc_pkey_hash_pointLookup_increasingColumn.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG5_ybc_pkey_hash_pointLookup_increasingColumn.yaml new file mode 100644 index 000000000..320bbc837 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG5_ybc_pkey_hash_pointLookup_increasingColumn.yaml @@ -0,0 +1,115 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL5 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Point lookup with different number of return columns (range primary key) +#TESTS: +# Time to fetch 2 column from schema that has 2 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 25 column from schema that has 25 column +# Time to fetch 100 column from schema that has 100 column + +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_2column_1; + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_pointlookup_fullTable_100column_1; + - CREATE TABLE pkey_pointlookup_fullTable_2column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_pointlookup_fullTable_10column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_pointlookup_fullTable_25column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,PRIMARY KEY(col_varchar_id_1)); + - CREATE TABLE pkey_pointlookup_fullTable_100column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,col_bigint_25 bigint,col_bigint_26 bigint,col_bigint_27 bigint,col_bigint_28 bigint,col_bigint_29 bigint,col_bigint_30 bigint,col_bigint_31 bigint,col_bigint_32 bigint,col_bigint_33 bigint,col_bigint_34 bigint,col_bigint_35 bigint,col_bigint_36 bigint,col_bigint_37 bigint,col_bigint_38 bigint,col_bigint_39 bigint,col_bigint_40 bigint,col_bigint_41 bigint,col_bigint_42 bigint,col_bigint_43 bigint,col_bigint_44 bigint,col_bigint_45 bigint,col_bigint_46 bigint,col_bigint_47 bigint,col_bigint_48 bigint,col_bigint_49 bigint,col_bigint_50 bigint,col_bigint_51 bigint,col_bigint_52 bigint,col_bigint_53 bigint,col_bigint_54 bigint,col_bigint_55 bigint,col_bigint_56 bigint,col_bigint_57 bigint,col_bigint_58 bigint,col_bigint_59 bigint,col_bigint_60 bigint,col_bigint_61 bigint,col_bigint_62 bigint,col_bigint_63 bigint,col_bigint_64 bigint,col_bigint_65 bigint,col_bigint_66 bigint,col_bigint_67 bigint,col_bigint_68 bigint,col_bigint_69 bigint,col_bigint_70 bigint,col_bigint_71 bigint,col_bigint_72 bigint,col_bigint_73 bigint,col_bigint_74 bigint,col_bigint_75 bigint,col_bigint_76 bigint,col_bigint_77 bigint,col_bigint_78 bigint,col_bigint_79 bigint,col_bigint_80 bigint,col_bigint_81 bigint,col_bigint_82 bigint,col_bigint_83 bigint,col_bigint_84 bigint,col_bigint_85 bigint,col_bigint_86 bigint,col_bigint_87 bigint,col_bigint_88 bigint,col_bigint_89 bigint,col_bigint_90 bigint,col_bigint_91 bigint,col_bigint_92 bigint,col_bigint_93 bigint,col_bigint_94 bigint,col_bigint_95 bigint,col_bigint_96 bigint,col_bigint_97 bigint,col_bigint_98 bigint,col_bigint_99 bigint,PRIMARY KEY(col_varchar_id_1)); + + loadRules: + - table: pkey_pointlookup_fullTable_2column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 1 + util: RandomNumber + params: [1, 1000000] + - table: pkey_pointlookup_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_pointlookup_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 24 + util: RandomNumber + params: [1, 1000000] + - table: pkey_pointlookup_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + + executeRules: + - workload: scanVG5_ybc_pkey_hash_pointLookup_table2column_fetch2column + run: + - name: pkey_hash_pointLookup_table2column_fetch1column + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_2column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: scanVG5_ybc_pkey_hash_pointLookup_table10column_fetch10column + run: + - name: pkey_hash_pointLookup_table10column_fetch10column + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_10column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: scanVG5_ybc_pkey_hash_pointLookup_table25column_fetch25column + run: + - name: pkey_hash_pointLookup_table25column_fetch25column + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_25column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + - workload: scanVG5_ybc_pkey_hash_pointLookup_table100column_fetch100column + run: + - name: pkey_rangescan_fullTable_table100column_fetch100column_1MRowsFetched + weight: 100 + queries: + - query: select * from pkey_pointlookup_fullTable_100column_1 where col_varchar_id_1 = '500009aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG7_ybc_pkey_rangescan_fullTableScan_increasingColumn.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG7_ybc_pkey_rangescan_fullTableScan_increasingColumn.yaml new file mode 100644 index 000000000..0a5760683 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG7_ybc_pkey_rangescan_fullTableScan_increasingColumn.yaml @@ -0,0 +1,113 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL7 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Range lookup with different number of return columns (Range primary key) (full table scan) +#TESTS: +# Time to fetch 2 column from schema that has 2 column +# Time to fetch 10 column from schema that has 10 column +# Time to fetch 25 column from schema that has 25 column +# Time to fetch 100 column from schema that has 100 column +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_2column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_10column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_25column_1; + - DROP TABLE IF EXISTS pkey_rangescan_fullTable_100column_1; + - CREATE TABLE pkey_rangescan_fullTable_2column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,PRIMARY KEY(col_varchar_id_1 ASC)); + - CREATE TABLE pkey_rangescan_fullTable_10column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,PRIMARY KEY(col_varchar_id_1 ASC)); + - CREATE TABLE pkey_rangescan_fullTable_25column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,PRIMARY KEY(col_varchar_id_1 ASC)); + - CREATE TABLE pkey_rangescan_fullTable_100column_1(col_varchar_id_1 varchar(100),col_bigint_1 bigint,col_bigint_2 bigint,col_bigint_3 bigint,col_bigint_4 bigint,col_bigint_5 bigint,col_bigint_6 bigint,col_bigint_7 bigint,col_bigint_8 bigint,col_bigint_9 bigint,col_bigint_10 bigint,col_bigint_11 bigint,col_bigint_12 bigint,col_bigint_13 bigint,col_bigint_14 bigint,col_bigint_15 bigint,col_bigint_16 bigint,col_bigint_17 bigint,col_bigint_18 bigint,col_bigint_19 bigint,col_bigint_20 bigint,col_bigint_21 bigint,col_bigint_22 bigint,col_bigint_23 bigint,col_bigint_24 bigint,col_bigint_25 bigint,col_bigint_26 bigint,col_bigint_27 bigint,col_bigint_28 bigint,col_bigint_29 bigint,col_bigint_30 bigint,col_bigint_31 bigint,col_bigint_32 bigint,col_bigint_33 bigint,col_bigint_34 bigint,col_bigint_35 bigint,col_bigint_36 bigint,col_bigint_37 bigint,col_bigint_38 bigint,col_bigint_39 bigint,col_bigint_40 bigint,col_bigint_41 bigint,col_bigint_42 bigint,col_bigint_43 bigint,col_bigint_44 bigint,col_bigint_45 bigint,col_bigint_46 bigint,col_bigint_47 bigint,col_bigint_48 bigint,col_bigint_49 bigint,col_bigint_50 bigint,col_bigint_51 bigint,col_bigint_52 bigint,col_bigint_53 bigint,col_bigint_54 bigint,col_bigint_55 bigint,col_bigint_56 bigint,col_bigint_57 bigint,col_bigint_58 bigint,col_bigint_59 bigint,col_bigint_60 bigint,col_bigint_61 bigint,col_bigint_62 bigint,col_bigint_63 bigint,col_bigint_64 bigint,col_bigint_65 bigint,col_bigint_66 bigint,col_bigint_67 bigint,col_bigint_68 bigint,col_bigint_69 bigint,col_bigint_70 bigint,col_bigint_71 bigint,col_bigint_72 bigint,col_bigint_73 bigint,col_bigint_74 bigint,col_bigint_75 bigint,col_bigint_76 bigint,col_bigint_77 bigint,col_bigint_78 bigint,col_bigint_79 bigint,col_bigint_80 bigint,col_bigint_81 bigint,col_bigint_82 bigint,col_bigint_83 bigint,col_bigint_84 bigint,col_bigint_85 bigint,col_bigint_86 bigint,col_bigint_87 bigint,col_bigint_88 bigint,col_bigint_89 bigint,col_bigint_90 bigint,col_bigint_91 bigint,col_bigint_92 bigint,col_bigint_93 bigint,col_bigint_94 bigint,col_bigint_95 bigint,col_bigint_96 bigint,col_bigint_97 bigint,col_bigint_98 bigint,col_bigint_99 bigint,PRIMARY KEY(col_varchar_id_1 ASC)); + + loadRules: + - table: pkey_rangescan_fullTable_2column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 1 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_10column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 9 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_25column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 24 + util: RandomNumber + params: [1, 1000000] + - table: pkey_rangescan_fullTable_100column_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 99 + util: RandomNumber + params: [1, 1000000] + executeRules: + - workload: scanVG7_ybc_pkey_rangescan_fullTable_table2column_fetch2column + run: + - name: pkey_rangescan_fullTable_table1column_fetch1column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_2column_1 where col_varchar_id_1>'0' + - workload: scanVG7_ybc_pkey_rangescan_fullTable_table10column_fetch10column + run: + - name: pkey_rangescan_fullTable_table10column_fetch10column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_10column_1 where col_varchar_id_1>'0' + - workload: scanVG7_ybc_pkey_rangescan_fullTable_table25column_fetch25column + run: + - name: pkey_rangescan_fullTable_table25column_fetch25column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_25column_1 where col_varchar_id_1>'0' + - workload: scanVG7_ybc_pkey_rangescan_fullTable_table100column_fetch100column + run: + - name: pkey_rangescan_halfTable_table100column_fetch100column_test + weight: 100 + queries: + - query: select * from pkey_rangescan_fullTable_100column_1 where col_varchar_id_1>'0' diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG8_ybc_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG8_ybc_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..d14150955 --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG8_ybc_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,160 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# Scan of a non indexed column which returns 0 row (Whole table scan) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE noIndex_fullTable_seqScan_1M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_5M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE noIndex_fullTable_seqScan_10M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + loadRules: + - table: noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanVG8_ybc_noIndex_fullTable_seqScan_1M_rows + run: + - name: noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select * from noIndex_fullTable_seqScan_1M_rows_1 where col_varchar100_id_1>'a' + - workload: scanVG8_ybc_noIndex_fullTable_seqScan_5M_rows + run: + - name: noIndex_fullTable_seqScan_5M_rows_test + weight: 100 + queries: + - query: select * from noIndex_fullTable_seqScan_5M_rows_1 where col_varchar100_id_1>'a' + - workload: scanVG8_ybc_noIndex_fullTable_seqScan_10M_rows + run: + - name: noIndex_fullTable_seqScan_10M_rows_test + weight: 100 + queries: + - query: select * from noIndex_fullTable_seqScan_10M_rows_1 where col_varchar100_id_1>'a' \ No newline at end of file diff --git a/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG9_ybc_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG9_ybc_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml new file mode 100644 index 000000000..94e8ec45a --- /dev/null +++ b/config/yugabyte/scan_workload_varchar/yb_colocated/scanVG9_ybc_count_nonIndexed_rangescan_fullTableScan_increasingRow.yaml @@ -0,0 +1,160 @@ +#TEST FOR YUGABYTE COLOCATED TABLES +#GOAL8 from tab Scan queries of doc https://docs.google.com/spreadsheets/d/1-M1i5tWJQJdbmtv7mz_20MZsT2Oqh_T3-6m12qKAMcA/edit#gid=796784261: +# count(*) query (Pushdown to docdb) +#TESTS: +# Time to scan a table with 1 million rows +# Time to scan a table with 5 million rows +# Time to scan a table with 10 million rows +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://172.151.48.253:5433/yugabyte?sslmode=require +createdb: drop database if exists yb_colocated; create database yb_colocated with colocated=true +username: yugabyte +password: Password@321 +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 180 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: true + create: + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_1M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_5M_rows_1; + - DROP TABLE IF EXISTS count_noIndex_fullTable_seqScan_10M_rows_1; + - CREATE TABLE count_noIndex_fullTable_seqScan_1M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_5M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + - CREATE TABLE count_noIndex_fullTable_seqScan_10M_rows_1(col_varchar100_id_1 varchar(100), col_bigint_1 bigint, col_bigint_2 bigint, col_bigint_3 bigint, col_bigint_4 bigint, col_bigint_5 bigint, col_float2_1 float(2), col_float2_2 float(2), col_float5_1 float(5), col_float5_2 float(5), col_boolean_1 boolean, col_varchar10_1 varchar(10), col_varchar100_1 varchar(100), col_varchar100_2 varchar(100), col_varchar500_1 varchar(500)); + loadRules: + - table: count_noIndex_fullTable_seqScan_1M_rows_ + count: 1 + rows: 1000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryStringGen + params: [1, 100] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 1000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 1000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_5M_rows_ + count: 1 + rows: 5000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryIntGen + params: [1, 5000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 5000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 5000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + - table: count_noIndex_fullTable_seqScan_10M_rows_ + count: 1 + rows: 10000000 + columns: + - name: col_varchar100_id_ + count: 1 + util: PrimaryIntGen + params: [1, 10000000] + - name: col_bigint_ + count: 5 + util: RandomNumber + params: [1, 10000000] + - name: col_float2_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 2] + - name: col_float5_ + count: 2 + util: RandomNoWithDecimalPoints + params: [1, 10000000, 5] + - name: col_boolean_ + count: 1 + util: RandomBoolean + - name: col_varchar10_ + count: 1 + util: RandomAString + params: [10, 10] + - name: col_varchar100_ + count: 2 + util: RandomAString + params: [100, 100] + - name: col_varchar500_ + count: 1 + util: RandomAString + params: [500, 500] + executeRules: + - workload: scanVG9_ybc_count_noIndex_fullTable_seqScan_1M_rows + run: + - name: count_noIndex_fullTable_seqScan_1M_rows_test + weight: 100 + queries: + - query: select count(*) from count_noIndex_fullTable_seqScan_1M_rows_1 + - workload: scanVG9_ybc_count_noIndex_fullTable_seqScan_5M_rows + run: + - name: count_noIndex_fullTable_seqScan_5M_rows_test + weight: 100 + queries: + - query: select count(*) from count_noIndex_fullTable_seqScan_5M_rows_1 + - workload: scanVG9_ybc_count_noIndex_fullTable_seqScan_10M_rows + run: + - name: count_noIndex_fullTable_seqScan_10M_rows_test + weight: 100 + queries: + - query: select count(*) from count_noIndex_fullTable_seqScan_10M_rows_1 \ No newline at end of file diff --git a/config/yugabyte/test/featurebench_CLI_changes.yaml b/config/yugabyte/test/featurebench_CLI_changes.yaml new file mode 100644 index 000000000..9993b8a16 --- /dev/null +++ b/config/yugabyte/test/featurebench_CLI_changes.yaml @@ -0,0 +1,99 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 10 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit : true + create: + - DROP TABLE IF EXISTS demo100col; + - CREATE TABLE demo100col (id INT, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, primary key (id ASC)) ; + loadRules: + - table: demo100col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: col + count: 100 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: RangeScan1 + run: + - name: ReadQuery1 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 10 + + - name: WriteQuery1 + weight: 50 + queries: + - query: UPDATE demo100col set col2 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + + + - workload: RangeScan2 + run: + - name: ReadQuery2 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 10 + + - name: WriteQuery2 + weight: 50 + queries: + - query: UPDATE demo100col set col3 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + - workload: RangeScan3 + run: + - name: ReadQuery3 + weight: 50 + queries: + - query: SELECT * FROM demo100col WHERE id < 50 + + - name: WriteQuery3 + weight: 50 + queries: + - query: UPDATE demo100col set col4 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 diff --git a/config/yugabyte/test/featurebench_testing.yaml b/config/yugabyte/test/featurebench_testing.yaml new file mode 100644 index 000000000..cc8879ab0 --- /dev/null +++ b/config/yugabyte/test/featurebench_testing.yaml @@ -0,0 +1,97 @@ +type: YUGABYTE +driver: com.yugabyte.Driver +url: jdbc:yugabytedb://localhost:5433/yugabyte?sslmode=disable&ApplicationName=featurebench&reWriteBatchedInserts=true +username: yugabyte +password: +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 1 +terminals: 1 +#collect_pg_stat_statements: false +collect_pg_stat_statements: true +works: + work: + time_secs: 3 + rate: 1000 + warmup: 0 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit : true + create: + - DROP TABLE IF EXISTS demo1; + - CREATE TABLE demo1 (id INT); + - DROP TABLE IF EXISTS demo2; + - CREATE TABLE demo2 (id INT); + - DROP TABLE IF EXISTS demo3; + - CREATE TABLE demo3 (id INT); + - DROP TABLE IF EXISTS demo3col; + - CREATE TABLE demo3col (id INT, col1 TEXT, col2 TEXT, col3 TEXT) + loadRules: + - table: demo3col + rows: 10 + columns: + - name: id + util: PrimaryIntGen + params: + - 1 + - 1000 + - name: col + count: 3 + util: RandomStringNumeric + params: + - 128 + executeRules: + - workload: test1 + run: + - name: INSERT1 + weight: 50 + queries: + - query: INSERT INTO demo1(id) values (?) + count : 3 + bindings: + - util: RandomNumber + params: + - 1 + - 1000 + - query: INSERT INTO demo2(id) values (?) + bindings: + - util: RandomNumber + params: + - 1 + - 1000 + - name: INSERT2 + weight: 50 + queries: + - query: INSERT INTO demo3(id) values (?) + bindings: + - util: RandomNumber + params: + - 1 + - 1000 + - workload: test2 + run: + - name: ReadQuery1 + weight: 50 + queries: + - query: SELECT * FROM demo3col WHERE id < 10 + + - name: WriteQuery1 + weight: 50 + queries: + - query: UPDATE demo3col set col2 = ? where id = ? + bindings: + - util: RandomAString + params: + - 10 + - 20 + - util: RandomNumber + params: + - 1 + - 1000 + + + + + + diff --git a/config/yugabyte/write_workloads/aurora/insertG1_varying_index_aurora.yaml b/config/yugabyte/write_workloads/aurora/insertG1_varying_index_aurora.yaml new file mode 100644 index 000000000..3aa689ffb --- /dev/null +++ b/config/yugabyte/write_workloads/aurora/insertG1_varying_index_aurora.yaml @@ -0,0 +1,135 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists index_test_1; + - drop table if exists index_test_2; + - drop table if exists index_test_3; + - drop table if exists index_test_4; + - create table index_test_1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_test_2_idx1 on index_test_2(col_int_1); + - create index index_test_3_idx1 on index_test_3(col_int_1); + - create index index_test_3_idx2 on index_test_3(col_int_2); + - create index index_test_3_idx3 on index_test_3(col_int_3); + - create index index_test_3_idx4 on index_test_3(col_int_4); + - create index index_test_3_idx5 on index_test_3(col_int_5); + - create index index_test_4_idx1 on index_test_4(col_int_1); + - create index index_test_4_idx2 on index_test_4(col_int_2); + - create index index_test_4_idx3 on index_test_4(col_int_3); + - create index index_test_4_idx4 on index_test_4(col_int_4); + - create index index_test_4_idx5 on index_test_4(col_int_5); + - create index index_test_4_idx6 on index_test_4(col_int_6); + - create index index_test_4_idx7 on index_test_4(col_int_7); + - create index index_test_4_idx8 on index_test_4(col_int_8); + - create index index_test_4_idx9 on index_test_4(col_int_9); + - create index index_test_4_idx10 on index_test_4(col_int_10); + loadRules: + - table: index_test_ + count: 4 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_ + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [ 20, 20 ] + - name: col_date + util: RandomAString + params: [ 20, 20 ] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: no_index + run: + - name: Insert_without_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_1 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 1_index_test + run: + - name: Insert_with_1_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_2 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 5_index_test + run: + - name: Insert_with_5_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_3 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean + - workload: 10_index_test + run: + - name: Insert_with_10_index_test + weight: 100 + queries: + - query: INSERT INTO index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) values (?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomNumber + count: 10 + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 4 + params: [ 20, 20 ] + - util: RandomBoolean diff --git a/config/yugabyte/write_workloads/aurora/insertG2_varying_columns_aurora.yaml b/config/yugabyte/write_workloads/aurora/insertG2_varying_columns_aurora.yaml new file mode 100644 index 000000000..000f799f7 --- /dev/null +++ b/config/yugabyte/write_workloads/aurora/insertG2_varying_columns_aurora.yaml @@ -0,0 +1,100 @@ +type: POSTGRES +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} + +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 4 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + active_terminals: 1 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists table_10_cols; + - drop table if exists table_100_cols; + - drop table if exists table_1000_cols; + - CREATE TABLE table_10_cols (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT); + - CREATE TABLE table_100_cols (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT); + - CREATE TABLE table_1000_cols (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT); + loadRules: + - table: table_10_cols + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col + count: 10 + util: RandomAString + params: [ 5, 5 ] + - table: table_100_cols + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col + count: 100 + util: RandomAString + params: [ 5, 5 ] + - table: table_1000_cols + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col + count: 1000 + util: RandomAString + params: [ 5, 5 ] + executeRules: + - workload: 10_col_test + run: + - name: Insert_with_10cols_test + weight: 100 + queries: + - query: INSERT INTO table_10_cols values (?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 10 + params: [ 5, 5 ] + - workload: 100_col_test + run: + - name: Insert_with_100_cols_test + weight: 100 + queries: + - query: INSERT INTO table_100_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 100 + params: [ 5, 5 ] + - workload: 1000_col_test + run: + - name: Insert_with_1000_cols_test + weight: 100 + queries: + - query: INSERT INTO table_1000_cols values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + count: 10 + bindings: + - util: PrimaryIntGen + params: [ 1000001, 9000000 ] + - util: RandomAString + count: 1000 + params: [ 5, 5 ] + diff --git a/config/yugabyte/write_workloads/aurora/updateG1_varying_rows_aurora.yaml b/config/yugabyte/write_workloads/aurora/updateG1_varying_rows_aurora.yaml new file mode 100644 index 000000000..2afd7d2a9 --- /dev/null +++ b/config/yugabyte/write_workloads/aurora/updateG1_varying_rows_aurora.yaml @@ -0,0 +1,78 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 1000000] + - name: col_int_ + count: 10 + util: RandomNumber + params: [1, 1000000] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [20, 20] + - name: col_date + util: RandomAString + params: [20, 20] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_1_row + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_varchar_3 = ? where id = ? + bindings: + - util: RandomAString + params: [20, 20] + - util: RandomNumber + params: [1, 1000000] + - workload: update_100 + run: + - name: update_100_rows + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_varchar_3 = ? where id > 100 and id <= 200 + bindings: + - util: RandomAString + params: [20, 20] + + - workload: update_1000 + run: + - name: update_1000_rows + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_varchar_3 = ? where id > 1000 and id <= 2000 + bindings: + - util: RandomAString + params: [20, 20] \ No newline at end of file diff --git a/config/yugabyte/write_workloads/aurora/updateG2_varying_indexs_aurora.yaml b/config/yugabyte/write_workloads/aurora/updateG2_varying_indexs_aurora.yaml new file mode 100644 index 000000000..6c5ee563f --- /dev/null +++ b/config/yugabyte/write_workloads/aurora/updateG2_varying_indexs_aurora.yaml @@ -0,0 +1,85 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - create table update_test_table1 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table2 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create table update_test_table3 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id)) + - create index index_update_test_table2 on update_test_table2(col_int_1); + - create index index_update_test_table3 on update_test_table3(col_int_2) include (col_int_1); + loadRules: + - table: update_test_table + count: 3 + rows: 1000000 + columns: + - name: id + util: PrimaryIntGen + params: [ 1, 1000000 ] + - name: col_int_ + count: 10 + util: RandomNumber + params: [ 1, 1000000 ] + - name: col_varchar_ + count: 3 + util: RandomAString + params: [ 20, 20 ] + - name: col_date + util: RandomAString + params: [ 20, 20 ] + - name: col_boolean + util: RandomBoolean + executeRules: + - workload: update_non_index_column + run: + - name: Update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table1 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_1_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table2 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + - workload: update_covering_index_column + run: + - name: update_1_row + weight: 100 + queries: + - query: UPDATE update_test_table3 set col_int_1 = ? where id = ? + bindings: + - util: RandomNumber + params: [ 1, 10000 ] + - util: RandomNumber + params: [ 1, 1000000 ] + + diff --git a/config/yugabyte/write_workloads/aurora/updateG3_varying_columns_aurora.yaml b/config/yugabyte/write_workloads/aurora/updateG3_varying_columns_aurora.yaml new file mode 100644 index 000000000..52e9d1a38 --- /dev/null +++ b/config/yugabyte/write_workloads/aurora/updateG3_varying_columns_aurora.yaml @@ -0,0 +1,77 @@ +type: postgres +driver: org.postgresql.Driver +url: jdbc:postgresql://{{endpoint}}:5432/postgres?sslmode=require&ApplicationName=featurebench&reWriteBatchedInserts=true +username: {{username}} +password: {{password}} +batchsize: 128 +isolation: TRANSACTION_REPEATABLE_READ +loaderthreads: 4 +terminals: 1 +collect_pg_stat_statements: true +works: + work: + time_secs: 300 + rate: unlimited + warmup: 60 +microbenchmark: + class: com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark + properties: + setAutoCommit: false + create: + - drop table if exists update_test_table1; + - drop table if exists update_test_table2; + - drop table if exists update_test_table3; + - CREATE TABLE update_test_table1 (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT); + - CREATE TABLE update_test_table2 (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT); + - CREATE TABLE update_test_table3 (id INT primary key, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 TEXT, col14 TEXT, col15 TEXT, col16 TEXT, col17 TEXT, col18 TEXT, col19 TEXT, col20 TEXT, col21 TEXT, col22 TEXT, col23 TEXT, col24 TEXT, col25 TEXT, col26 TEXT, col27 TEXT, col28 TEXT, col29 TEXT, col30 TEXT, col31 TEXT, col32 TEXT, col33 TEXT, col34 TEXT, col35 TEXT, col36 TEXT, col37 TEXT, col38 TEXT, col39 TEXT, col40 TEXT, col41 TEXT, col42 TEXT, col43 TEXT, col44 TEXT, col45 TEXT, col46 TEXT, col47 TEXT, col48 TEXT, col49 TEXT, col50 TEXT, col51 TEXT, col52 TEXT, col53 TEXT, col54 TEXT, col55 TEXT, col56 TEXT, col57 TEXT, col58 TEXT, col59 TEXT, col60 TEXT, col61 TEXT, col62 TEXT, col63 TEXT, col64 TEXT, col65 TEXT, col66 TEXT, col67 TEXT, col68 TEXT, col69 TEXT, col70 TEXT, col71 TEXT, col72 TEXT, col73 TEXT, col74 TEXT, col75 TEXT, col76 TEXT, col77 TEXT, col78 TEXT, col79 TEXT, col80 TEXT, col81 TEXT, col82 TEXT, col83 TEXT, col84 TEXT, col85 TEXT, col86 TEXT, col87 TEXT, col88 TEXT, col89 TEXT, col90 TEXT, col91 TEXT, col92 TEXT, col93 TEXT, col94 TEXT, col95 TEXT, col96 TEXT, col97 TEXT, col98 TEXT, col99 TEXT, col100 TEXT, col101 TEXT, col102 TEXT, col103 TEXT, col104 TEXT, col105 TEXT, col106 TEXT, col107 TEXT, col108 TEXT, col109 TEXT, col110 TEXT, col111 TEXT, col112 TEXT, col113 TEXT, col114 TEXT, col115 TEXT, col116 TEXT, col117 TEXT, col118 TEXT, col119 TEXT, col120 TEXT, col121 TEXT, col122 TEXT, col123 TEXT, col124 TEXT, col125 TEXT, col126 TEXT, col127 TEXT, col128 TEXT, col129 TEXT, col130 TEXT, col131 TEXT, col132 TEXT, col133 TEXT, col134 TEXT, col135 TEXT, col136 TEXT, col137 TEXT, col138 TEXT, col139 TEXT, col140 TEXT, col141 TEXT, col142 TEXT, col143 TEXT, col144 TEXT, col145 TEXT, col146 TEXT, col147 TEXT, col148 TEXT, col149 TEXT, col150 TEXT, col151 TEXT, col152 TEXT, col153 TEXT, col154 TEXT, col155 TEXT, col156 TEXT, col157 TEXT, col158 TEXT, col159 TEXT, col160 TEXT, col161 TEXT, col162 TEXT, col163 TEXT, col164 TEXT, col165 TEXT, col166 TEXT, col167 TEXT, col168 TEXT, col169 TEXT, col170 TEXT, col171 TEXT, col172 TEXT, col173 TEXT, col174 TEXT, col175 TEXT, col176 TEXT, col177 TEXT, col178 TEXT, col179 TEXT, col180 TEXT, col181 TEXT, col182 TEXT, col183 TEXT, col184 TEXT, col185 TEXT, col186 TEXT, col187 TEXT, col188 TEXT, col189 TEXT, col190 TEXT, col191 TEXT, col192 TEXT, col193 TEXT, col194 TEXT, col195 TEXT, col196 TEXT, col197 TEXT, col198 TEXT, col199 TEXT, col200 TEXT, col201 TEXT, col202 TEXT, col203 TEXT, col204 TEXT, col205 TEXT, col206 TEXT, col207 TEXT, col208 TEXT, col209 TEXT, col210 TEXT, col211 TEXT, col212 TEXT, col213 TEXT, col214 TEXT, col215 TEXT, col216 TEXT, col217 TEXT, col218 TEXT, col219 TEXT, col220 TEXT, col221 TEXT, col222 TEXT, col223 TEXT, col224 TEXT, col225 TEXT, col226 TEXT, col227 TEXT, col228 TEXT, col229 TEXT, col230 TEXT, col231 TEXT, col232 TEXT, col233 TEXT, col234 TEXT, col235 TEXT, col236 TEXT, col237 TEXT, col238 TEXT, col239 TEXT, col240 TEXT, col241 TEXT, col242 TEXT, col243 TEXT, col244 TEXT, col245 TEXT, col246 TEXT, col247 TEXT, col248 TEXT, col249 TEXT, col250 TEXT, col251 TEXT, col252 TEXT, col253 TEXT, col254 TEXT, col255 TEXT, col256 TEXT, col257 TEXT, col258 TEXT, col259 TEXT, col260 TEXT, col261 TEXT, col262 TEXT, col263 TEXT, col264 TEXT, col265 TEXT, col266 TEXT, col267 TEXT, col268 TEXT, col269 TEXT, col270 TEXT, col271 TEXT, col272 TEXT, col273 TEXT, col274 TEXT, col275 TEXT, col276 TEXT, col277 TEXT, col278 TEXT, col279 TEXT, col280 TEXT, col281 TEXT, col282 TEXT, col283 TEXT, col284 TEXT, col285 TEXT, col286 TEXT, col287 TEXT, col288 TEXT, col289 TEXT, col290 TEXT, col291 TEXT, col292 TEXT, col293 TEXT, col294 TEXT, col295 TEXT, col296 TEXT, col297 TEXT, col298 TEXT, col299 TEXT, col300 TEXT, col301 TEXT, col302 TEXT, col303 TEXT, col304 TEXT, col305 TEXT, col306 TEXT, col307 TEXT, col308 TEXT, col309 TEXT, col310 TEXT, col311 TEXT, col312 TEXT, col313 TEXT, col314 TEXT, col315 TEXT, col316 TEXT, col317 TEXT, col318 TEXT, col319 TEXT, col320 TEXT, col321 TEXT, col322 TEXT, col323 TEXT, col324 TEXT, col325 TEXT, col326 TEXT, col327 TEXT, col328 TEXT, col329 TEXT, col330 TEXT, col331 TEXT, col332 TEXT, col333 TEXT, col334 TEXT, col335 TEXT, col336 TEXT, col337 TEXT, col338 TEXT, col339 TEXT, col340 TEXT, col341 TEXT, col342 TEXT, col343 TEXT, col344 TEXT, col345 TEXT, col346 TEXT, col347 TEXT, col348 TEXT, col349 TEXT, col350 TEXT, col351 TEXT, col352 TEXT, col353 TEXT, col354 TEXT, col355 TEXT, col356 TEXT, col357 TEXT, col358 TEXT, col359 TEXT, col360 TEXT, col361 TEXT, col362 TEXT, col363 TEXT, col364 TEXT, col365 TEXT, col366 TEXT, col367 TEXT, col368 TEXT, col369 TEXT, col370 TEXT, col371 TEXT, col372 TEXT, col373 TEXT, col374 TEXT, col375 TEXT, col376 TEXT, col377 TEXT, col378 TEXT, col379 TEXT, col380 TEXT, col381 TEXT, col382 TEXT, col383 TEXT, col384 TEXT, col385 TEXT, col386 TEXT, col387 TEXT, col388 TEXT, col389 TEXT, col390 TEXT, col391 TEXT, col392 TEXT, col393 TEXT, col394 TEXT, col395 TEXT, col396 TEXT, col397 TEXT, col398 TEXT, col399 TEXT, col400 TEXT, col401 TEXT, col402 TEXT, col403 TEXT, col404 TEXT, col405 TEXT, col406 TEXT, col407 TEXT, col408 TEXT, col409 TEXT, col410 TEXT, col411 TEXT, col412 TEXT, col413 TEXT, col414 TEXT, col415 TEXT, col416 TEXT, col417 TEXT, col418 TEXT, col419 TEXT, col420 TEXT, col421 TEXT, col422 TEXT, col423 TEXT, col424 TEXT, col425 TEXT, col426 TEXT, col427 TEXT, col428 TEXT, col429 TEXT, col430 TEXT, col431 TEXT, col432 TEXT, col433 TEXT, col434 TEXT, col435 TEXT, col436 TEXT, col437 TEXT, col438 TEXT, col439 TEXT, col440 TEXT, col441 TEXT, col442 TEXT, col443 TEXT, col444 TEXT, col445 TEXT, col446 TEXT, col447 TEXT, col448 TEXT, col449 TEXT, col450 TEXT, col451 TEXT, col452 TEXT, col453 TEXT, col454 TEXT, col455 TEXT, col456 TEXT, col457 TEXT, col458 TEXT, col459 TEXT, col460 TEXT, col461 TEXT, col462 TEXT, col463 TEXT, col464 TEXT, col465 TEXT, col466 TEXT, col467 TEXT, col468 TEXT, col469 TEXT, col470 TEXT, col471 TEXT, col472 TEXT, col473 TEXT, col474 TEXT, col475 TEXT, col476 TEXT, col477 TEXT, col478 TEXT, col479 TEXT, col480 TEXT, col481 TEXT, col482 TEXT, col483 TEXT, col484 TEXT, col485 TEXT, col486 TEXT, col487 TEXT, col488 TEXT, col489 TEXT, col490 TEXT, col491 TEXT, col492 TEXT, col493 TEXT, col494 TEXT, col495 TEXT, col496 TEXT, col497 TEXT, col498 TEXT, col499 TEXT, col500 TEXT, col501 TEXT, col502 TEXT, col503 TEXT, col504 TEXT, col505 TEXT, col506 TEXT, col507 TEXT, col508 TEXT, col509 TEXT, col510 TEXT, col511 TEXT, col512 TEXT, col513 TEXT, col514 TEXT, col515 TEXT, col516 TEXT, col517 TEXT, col518 TEXT, col519 TEXT, col520 TEXT, col521 TEXT, col522 TEXT, col523 TEXT, col524 TEXT, col525 TEXT, col526 TEXT, col527 TEXT, col528 TEXT, col529 TEXT, col530 TEXT, col531 TEXT, col532 TEXT, col533 TEXT, col534 TEXT, col535 TEXT, col536 TEXT, col537 TEXT, col538 TEXT, col539 TEXT, col540 TEXT, col541 TEXT, col542 TEXT, col543 TEXT, col544 TEXT, col545 TEXT, col546 TEXT, col547 TEXT, col548 TEXT, col549 TEXT, col550 TEXT, col551 TEXT, col552 TEXT, col553 TEXT, col554 TEXT, col555 TEXT, col556 TEXT, col557 TEXT, col558 TEXT, col559 TEXT, col560 TEXT, col561 TEXT, col562 TEXT, col563 TEXT, col564 TEXT, col565 TEXT, col566 TEXT, col567 TEXT, col568 TEXT, col569 TEXT, col570 TEXT, col571 TEXT, col572 TEXT, col573 TEXT, col574 TEXT, col575 TEXT, col576 TEXT, col577 TEXT, col578 TEXT, col579 TEXT, col580 TEXT, col581 TEXT, col582 TEXT, col583 TEXT, col584 TEXT, col585 TEXT, col586 TEXT, col587 TEXT, col588 TEXT, col589 TEXT, col590 TEXT, col591 TEXT, col592 TEXT, col593 TEXT, col594 TEXT, col595 TEXT, col596 TEXT, col597 TEXT, col598 TEXT, col599 TEXT, col600 TEXT, col601 TEXT, col602 TEXT, col603 TEXT, col604 TEXT, col605 TEXT, col606 TEXT, col607 TEXT, col608 TEXT, col609 TEXT, col610 TEXT, col611 TEXT, col612 TEXT, col613 TEXT, col614 TEXT, col615 TEXT, col616 TEXT, col617 TEXT, col618 TEXT, col619 TEXT, col620 TEXT, col621 TEXT, col622 TEXT, col623 TEXT, col624 TEXT, col625 TEXT, col626 TEXT, col627 TEXT, col628 TEXT, col629 TEXT, col630 TEXT, col631 TEXT, col632 TEXT, col633 TEXT, col634 TEXT, col635 TEXT, col636 TEXT, col637 TEXT, col638 TEXT, col639 TEXT, col640 TEXT, col641 TEXT, col642 TEXT, col643 TEXT, col644 TEXT, col645 TEXT, col646 TEXT, col647 TEXT, col648 TEXT, col649 TEXT, col650 TEXT, col651 TEXT, col652 TEXT, col653 TEXT, col654 TEXT, col655 TEXT, col656 TEXT, col657 TEXT, col658 TEXT, col659 TEXT, col660 TEXT, col661 TEXT, col662 TEXT, col663 TEXT, col664 TEXT, col665 TEXT, col666 TEXT, col667 TEXT, col668 TEXT, col669 TEXT, col670 TEXT, col671 TEXT, col672 TEXT, col673 TEXT, col674 TEXT, col675 TEXT, col676 TEXT, col677 TEXT, col678 TEXT, col679 TEXT, col680 TEXT, col681 TEXT, col682 TEXT, col683 TEXT, col684 TEXT, col685 TEXT, col686 TEXT, col687 TEXT, col688 TEXT, col689 TEXT, col690 TEXT, col691 TEXT, col692 TEXT, col693 TEXT, col694 TEXT, col695 TEXT, col696 TEXT, col697 TEXT, col698 TEXT, col699 TEXT, col700 TEXT, col701 TEXT, col702 TEXT, col703 TEXT, col704 TEXT, col705 TEXT, col706 TEXT, col707 TEXT, col708 TEXT, col709 TEXT, col710 TEXT, col711 TEXT, col712 TEXT, col713 TEXT, col714 TEXT, col715 TEXT, col716 TEXT, col717 TEXT, col718 TEXT, col719 TEXT, col720 TEXT, col721 TEXT, col722 TEXT, col723 TEXT, col724 TEXT, col725 TEXT, col726 TEXT, col727 TEXT, col728 TEXT, col729 TEXT, col730 TEXT, col731 TEXT, col732 TEXT, col733 TEXT, col734 TEXT, col735 TEXT, col736 TEXT, col737 TEXT, col738 TEXT, col739 TEXT, col740 TEXT, col741 TEXT, col742 TEXT, col743 TEXT, col744 TEXT, col745 TEXT, col746 TEXT, col747 TEXT, col748 TEXT, col749 TEXT, col750 TEXT, col751 TEXT, col752 TEXT, col753 TEXT, col754 TEXT, col755 TEXT, col756 TEXT, col757 TEXT, col758 TEXT, col759 TEXT, col760 TEXT, col761 TEXT, col762 TEXT, col763 TEXT, col764 TEXT, col765 TEXT, col766 TEXT, col767 TEXT, col768 TEXT, col769 TEXT, col770 TEXT, col771 TEXT, col772 TEXT, col773 TEXT, col774 TEXT, col775 TEXT, col776 TEXT, col777 TEXT, col778 TEXT, col779 TEXT, col780 TEXT, col781 TEXT, col782 TEXT, col783 TEXT, col784 TEXT, col785 TEXT, col786 TEXT, col787 TEXT, col788 TEXT, col789 TEXT, col790 TEXT, col791 TEXT, col792 TEXT, col793 TEXT, col794 TEXT, col795 TEXT, col796 TEXT, col797 TEXT, col798 TEXT, col799 TEXT, col800 TEXT, col801 TEXT, col802 TEXT, col803 TEXT, col804 TEXT, col805 TEXT, col806 TEXT, col807 TEXT, col808 TEXT, col809 TEXT, col810 TEXT, col811 TEXT, col812 TEXT, col813 TEXT, col814 TEXT, col815 TEXT, col816 TEXT, col817 TEXT, col818 TEXT, col819 TEXT, col820 TEXT, col821 TEXT, col822 TEXT, col823 TEXT, col824 TEXT, col825 TEXT, col826 TEXT, col827 TEXT, col828 TEXT, col829 TEXT, col830 TEXT, col831 TEXT, col832 TEXT, col833 TEXT, col834 TEXT, col835 TEXT, col836 TEXT, col837 TEXT, col838 TEXT, col839 TEXT, col840 TEXT, col841 TEXT, col842 TEXT, col843 TEXT, col844 TEXT, col845 TEXT, col846 TEXT, col847 TEXT, col848 TEXT, col849 TEXT, col850 TEXT, col851 TEXT, col852 TEXT, col853 TEXT, col854 TEXT, col855 TEXT, col856 TEXT, col857 TEXT, col858 TEXT, col859 TEXT, col860 TEXT, col861 TEXT, col862 TEXT, col863 TEXT, col864 TEXT, col865 TEXT, col866 TEXT, col867 TEXT, col868 TEXT, col869 TEXT, col870 TEXT, col871 TEXT, col872 TEXT, col873 TEXT, col874 TEXT, col875 TEXT, col876 TEXT, col877 TEXT, col878 TEXT, col879 TEXT, col880 TEXT, col881 TEXT, col882 TEXT, col883 TEXT, col884 TEXT, col885 TEXT, col886 TEXT, col887 TEXT, col888 TEXT, col889 TEXT, col890 TEXT, col891 TEXT, col892 TEXT, col893 TEXT, col894 TEXT, col895 TEXT, col896 TEXT, col897 TEXT, col898 TEXT, col899 TEXT, col900 TEXT, col901 TEXT, col902 TEXT, col903 TEXT, col904 TEXT, col905 TEXT, col906 TEXT, col907 TEXT, col908 TEXT, col909 TEXT, col910 TEXT, col911 TEXT, col912 TEXT, col913 TEXT, col914 TEXT, col915 TEXT, col916 TEXT, col917 TEXT, col918 TEXT, col919 TEXT, col920 TEXT, col921 TEXT, col922 TEXT, col923 TEXT, col924 TEXT, col925 TEXT, col926 TEXT, col927 TEXT, col928 TEXT, col929 TEXT, col930 TEXT, col931 TEXT, col932 TEXT, col933 TEXT, col934 TEXT, col935 TEXT, col936 TEXT, col937 TEXT, col938 TEXT, col939 TEXT, col940 TEXT, col941 TEXT, col942 TEXT, col943 TEXT, col944 TEXT, col945 TEXT, col946 TEXT, col947 TEXT, col948 TEXT, col949 TEXT, col950 TEXT, col951 TEXT, col952 TEXT, col953 TEXT, col954 TEXT, col955 TEXT, col956 TEXT, col957 TEXT, col958 TEXT, col959 TEXT, col960 TEXT, col961 TEXT, col962 TEXT, col963 TEXT, col964 TEXT, col965 TEXT, col966 TEXT, col967 TEXT, col968 TEXT, col969 TEXT, col970 TEXT, col971 TEXT, col972 TEXT, col973 TEXT, col974 TEXT, col975 TEXT, col976 TEXT, col977 TEXT, col978 TEXT, col979 TEXT, col980 TEXT, col981 TEXT, col982 TEXT, col983 TEXT, col984 TEXT, col985 TEXT, col986 TEXT, col987 TEXT, col988 TEXT, col989 TEXT, col990 TEXT, col991 TEXT, col992 TEXT, col993 TEXT, col994 TEXT, col995 TEXT, col996 TEXT, col997 TEXT, col998 TEXT, col999 TEXT, col1000 TEXT, col1001 TEXT, col1002 TEXT, col1003 TEXT, col1004 TEXT, col1005 TEXT, col1006 TEXT, col1007 TEXT, col1008 TEXT, col1009 TEXT, col1010 TEXT, col1011 TEXT, col1012 TEXT, col1013 TEXT, col1014 TEXT, col1015 TEXT, col1016 TEXT, col1017 TEXT, col1018 TEXT, col1019 TEXT, col1020 TEXT, col1021 TEXT, col1022 TEXT, col1023 TEXT, col1024 TEXT, col1025 TEXT, col1026 TEXT, col1027 TEXT, col1028 TEXT, col1029 TEXT, col1030 TEXT, col1031 TEXT, col1032 TEXT, col1033 TEXT, col1034 TEXT, col1035 TEXT, col1036 TEXT, col1037 TEXT, col1038 TEXT, col1039 TEXT, col1040 TEXT, col1041 TEXT, col1042 TEXT, col1043 TEXT, col1044 TEXT, col1045 TEXT, col1046 TEXT, col1047 TEXT, col1048 TEXT, col1049 TEXT, col1050 TEXT, col1051 TEXT, col1052 TEXT, col1053 TEXT, col1054 TEXT, col1055 TEXT, col1056 TEXT, col1057 TEXT, col1058 TEXT, col1059 TEXT, col1060 TEXT, col1061 TEXT, col1062 TEXT, col1063 TEXT, col1064 TEXT, col1065 TEXT, col1066 TEXT, col1067 TEXT, col1068 TEXT, col1069 TEXT, col1070 TEXT, col1071 TEXT, col1072 TEXT, col1073 TEXT, col1074 TEXT, col1075 TEXT, col1076 TEXT, col1077 TEXT, col1078 TEXT, col1079 TEXT, col1080 TEXT, col1081 TEXT, col1082 TEXT, col1083 TEXT, col1084 TEXT, col1085 TEXT, col1086 TEXT, col1087 TEXT, col1088 TEXT, col1089 TEXT, col1090 TEXT, col1091 TEXT, col1092 TEXT, col1093 TEXT, col1094 TEXT, col1095 TEXT, col1096 TEXT, col1097 TEXT, col1098 TEXT, col1099 TEXT, col1100 TEXT); + loadRules: + - table: update_test_table + count: 3 + rows: 100000 + columns: + - name: id + util: PrimaryIntGen + params: [1, 100000] + - name: col + count: 1100 + util: RandomAString + params: [4, 4] + executeRules: + - workload: update_10_cols + run: + - name: update_10_cols + weight: 100 + queries: + - query: update update_test_table1 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=? where id = ? + bindings: + - util: RandomAString + count: 10 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_100_cols + run: + - name: update_100_cols + weight: 100 + queries: + - query: update update_test_table2 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=? where id=?; + bindings: + - util: RandomAString + count: 100 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] + + - workload: update_1000_cols + run: + - name: update_1000_cols + weight: 100 + queries: + - query: update update_test_table3 set col1=?, col2=?, col3=?, col4=?, col5=?, col6=?, col7=?, col8=?, col9=?, col10=?, col11=?, col12=?, col13=?, col14=?, col15=?, col16=?, col17=?, col18=?, col19=?, col20=?, col21=?, col22=?, col23=?, col24=?, col25=?, col26=?, col27=?, col28=?, col29=?, col30=?, col31=?, col32=?, col33=?, col34=?, col35=?, col36=?, col37=?, col38=?, col39=?, col40=?, col41=?, col42=?, col43=?, col44=?, col45=?, col46=?, col47=?, col48=?, col49=?, col50=? , col51=?, col52=?, col53=?, col54=?, col55=?, col56=?, col57=?, col58=?, col59=?, col60=?, col61=?, col62=?, col63=?, col64=?, col65=?, col66=?, col67=?, col68=?, col69=?, col70=?, col71=?, col72=?, col73=?, col74=?, col75=?, col76=?, col77=?, col78=?, col79=?, col80=?, col81=?, col82=?, col83=?, col84=?, col85=?, col86=?, col87=?, col88=?, col89=?, col90=?, col91=?, col92=?, col93=?, col94=?, col95=?, col96=?, col97=?, col98=?, col99=?, col100=?, col101=?, col102=?, col103=?, col104=?, col105=?, col106=?, col107=?, col108=?, col109=?, col110=?, col111=?, col112=?, col113=?, col114=?, col115=?, col116=?, col117=?, col118=?, col119=?, col120=?, col121=?, col122=?, col123=?, col124=?, col125=?, col126=?, col127=?, col128=?, col129=?, col130=?, col131=?, col132=?, col133=?, col134=?, col135=?, col136=?, col137=?, col138=?, col139=?, col140=?, col141=?, col142=?, col143=?, col144=?, col145=?, col146=?, col147=?, col148=?, col149=?, col150=?, col151=?, col152=?, col153=?, col154=?, col155=?, col156=?, col157=?, col158=?, col159=?, col160=?, col161=?, col162=?, col163=?, col164=?, col165=?, col166=?, col167=?, col168=?, col169=?, col170=?, col171=?, col172=?, col173=?, col174=?, col175=?, col176=?, col177=?, col178=?, col179=?, col180=?, col181=?, col182=?, col183=?, col184=?, col185=?, col186=?, col187=?, col188=?, col189=?, col190=?, col191=?, col192=?, col193=?, col194=?, col195=?, col196=?, col197=?, col198=?, col199=?, col200=?, col201=?, col202=?, col203=?, col204=?, col205=?, col206=?, col207=?, col208=?, col209=?, col210=?, col211=?, col212=?, col213=?, col214=?, col215=?, col216=?, col217=?, col218=?, col219=?, col220=?, col221=?, col222=?, col223=?, col224=?, col225=?, col226=?, col227=?, col228=?, col229=?, col230=?, col231=?, col232=?, col233=?, col234=?, col235=?, col236=?, col237=?, col238=?, col239=?, col240=?, col241=?, col242=?, col243=?, col244=?, col245=?, col246=?, col247=?, col248=?, col249=?, col250=?, col251=?, col252=?, col253=?, col254=?, col255=?, col256=?, col257=?, col258=?, col259=?, col260=?, col261=?, col262=?, col263=?, col264=?, col265=?, col266=?, col267=?, col268=?, col269=?, col270=?, col271=?, col272=?, col273=?, col274=?, col275=?, col276=?, col277=?, col278=?, col279=?, col280=?, col281=?, col282=?, col283=?, col284=?, col285=?, col286=?, col287=?, col288=?, col289=?, col290=?, col291=?, col292=?, col293=?, col294=?, col295=?, col296=?, col297=?, col298=?, col299=?, col300=?, col301=?, col302=?, col303=?, col304=?, col305=?, col306=?, col307=?, col308=?, col309=?, col310=?, col311=?, col312=?, col313=?, col314=?, col315=?, col316=?, col317=?, col318=?, col319=?, col320=?, col321=?, col322=?, col323=?, col324=?, col325=?, col326=?, col327=?, col328=?, col329=?, col330=?, col331=?, col332=?, col333=?, col334=?, col335=?, col336=?, col337=?, col338=?, col339=?, col340=?, col341=?, col342=?, col343=?, col344=?, col345=?, col346=?, col347=?, col348=?, col349=?, col350=?, col351=?, col352=?, col353=?, col354=?, col355=?, col356=?, col357=?, col358=?, col359=?, col360=?, col361=?, col362=?, col363=?, col364=?, col365=?, col366=?, col367=?, col368=?, col369=?, col370=?, col371=?, col372=?, col373=?, col374=?, col375=?, col376=?, col377=?, col378=?, col379=?, col380=?, col381=?, col382=?, col383=?, col384=?, col385=?, col386=?, col387=?, col388=?, col389=?, col390=?, col391=?, col392=?, col393=?, col394=?, col395=?, col396=?, col397=?, col398=?, col399=?, col400=?, col401=?, col402=?, col403=?, col404=?, col405=?, col406=?, col407=?, col408=?, col409=?, col410=?, col411=?, col412=?, col413=?, col414=?, col415=?, col416=?, col417=?, col418=?, col419=?, col420=?, col421=?, col422=?, col423=?, col424=?, col425=?, col426=?, col427=?, col428=?, col429=?, col430=?, col431=?, col432=?, col433=?, col434=?, col435=?, col436=?, col437=?, col438=?, col439=?, col440=?, col441=?, col442=?, col443=?, col444=?, col445=?, col446=?, col447=?, col448=?, col449=?, col450=?, col451=?, col452=?, col453=?, col454=?, col455=?, col456=?, col457=?, col458=?, col459=?, col460=?, col461=?, col462=?, col463=?, col464=?, col465=?, col466=?, col467=?, col468=?, col469=?, col470=?, col471=?, col472=?, col473=?, col474=?, col475=?, col476=?, col477=?, col478=?, col479=?, col480=?, col481=?, col482=?, col483=?, col484=?, col485=?, col486=?, col487=?, col488=?, col489=?, col490=?, col491=?, col492=?, col493=?, col494=?, col495=?, col496=?, col497=?, col498=?, col499=?, col500=?, col501=?, col502=?, col503=?, col504=?, col505=?, col506=?, col507=?, col508=?, col509=?, col510=?, col511=?, col512=?, col513=?, col514=?, col515=?, col516=?, col517=?, col518=?, col519=?, col520=?, col521=?, col522=?, col523=?, col524=?, col525=?, col526=?, col527=?, col528=?, col529=?, col530=?, col531=?, col532=?, col533=?, col534=?, col535=?, col536=?, col537=?, col538=?, col539=?, col540=?, col541=?, col542=?, col543=?, col544=?, col545=?, col546=?, col547=?, col548=?, col549=?, col550=?, col551=?, col552=?, col553=?, col554=?, col555=?, col556=?, col557=?, col558=?, col559=?, col560=?, col561=?, col562=?, col563=?, col564=?, col565=?, col566=?, col567=?, col568=?, col569=?, col570=?, col571=?, col572=?, col573=?, col574=?, col575=?, col576=?, col577=?, col578=?, col579=?, col580=?, col581=?, col582=?, col583=?, col584=?, col585=?, col586=?, col587=?, col588=?, col589=?, col590=?, col591=?, col592=?, col593=?, col594=?, col595=?, col596=?, col597=?, col598=?, col599=?, col600=?, col601=?, col602=?, col603=?, col604=?, col605=?, col606=?, col607=?, col608=?, col609=?, col610=?, col611=?, col612=?, col613=?, col614=?, col615=?, col616=?, col617=?, col618=?, col619=?, col620=?, col621=?, col622=?, col623=?, col624=?, col625=?, col626=?, col627=?, col628=?, col629=?, col630=?, col631=?, col632=?, col633=?, col634=?, col635=?, col636=?, col637=?, col638=?, col639=?, col640=?, col641=?, col642=?, col643=?, col644=?, col645=?, col646=?, col647=?, col648=?, col649=?, col650=?, col651=?, col652=?, col653=?, col654=?, col655=?, col656=?, col657=?, col658=?, col659=?, col660=?, col661=?, col662=?, col663=?, col664=?, col665=?, col666=?, col667=?, col668=?, col669=?, col670=?, col671=?, col672=?, col673=?, col674=?, col675=?, col676=?, col677=?, col678=?, col679=?, col680=?, col681=?, col682=?, col683=?, col684=?, col685=?, col686=?, col687=?, col688=?, col689=?, col690=?, col691=?, col692=?, col693=?, col694=?, col695=?, col696=?, col697=?, col698=?, col699=?, col700=?, col701=?, col702=?, col703=?, col704=?, col705=?, col706=?, col707=?, col708=?, col709=?, col710=?, col711=?, col712=?, col713=?, col714=?, col715=?, col716=?, col717=?, col718=?, col719=?, col720=?, col721=?, col722=?, col723=?, col724=?, col725=?, col726=?, col727=?, col728=?, col729=?, col730=?, col731=?, col732=?, col733=?, col734=?, col735=?, col736=?, col737=?, col738=?, col739=?, col740=?, col741=?, col742=?, col743=?, col744=?, col745=?, col746=?, col747=?, col748=?, col749=?, col750=?, col751=?, col752=?, col753=?, col754=?, col755=?, col756=?, col757=?, col758=?, col759=?, col760=?, col761=?, col762=?, col763=?, col764=?, col765=?, col766=?, col767=?, col768=?, col769=?, col770=?, col771=?, col772=?, col773=?, col774=?, col775=?, col776=?, col777=?, col778=?, col779=?, col780=?, col781=?, col782=?, col783=?, col784=?, col785=?, col786=?, col787=?, col788=?, col789=?, col790=?, col791=?, col792=?, col793=?, col794=?, col795=?, col796=?, col797=?, col798=?, col799=?, col800=?, col801=?, col802=?, col803=?, col804=?, col805=?, col806=?, col807=?, col808=?, col809=?, col810=?, col811=?, col812=?, col813=?, col814=?, col815=?, col816=?, col817=?, col818=?, col819=?, col820=?, col821=?, col822=?, col823=?, col824=?, col825=?, col826=?, col827=?, col828=?, col829=?, col830=?, col831=?, col832=?, col833=?, col834=?, col835=?, col836=?, col837=?, col838=?, col839=?, col840=?, col841=?, col842=?, col843=?, col844=?, col845=?, col846=?, col847=?, col848=?, col849=?, col850=?, col851=?, col852=?, col853=?, col854=?, col855=?, col856=?, col857=?, col858=?, col859=?, col860=?, col861=?, col862=?, col863=?, col864=?, col865=?, col866=?, col867=?, col868=?, col869=?, col870=?, col871=?, col872=?, col873=?, col874=?, col875=?, col876=?, col877=?, col878=?, col879=?, col880=?, col881=?, col882=?, col883=?, col884=?, col885=?, col886=?, col887=?, col888=?, col889=?, col890=?, col891=?, col892=?, col893=?, col894=?, col895=?, col896=?, col897=?, col898=?, col899=?, col900=?, col901=?, col902=?, col903=?, col904=?, col905=?, col906=?, col907=?, col908=?, col909=?, col910=?, col911=?, col912=?, col913=?, col914=?, col915=?, col916=?, col917=?, col918=?, col919=?, col920=?, col921=?, col922=?, col923=?, col924=?, col925=?, col926=?, col927=?, col928=?, col929=?, col930=?, col931=?, col932=?, col933=?, col934=?, col935=?, col936=?, col937=?, col938=?, col939=?, col940=?, col941=?, col942=?, col943=?, col944=?, col945=?, col946=?, col947=?, col948=?, col949=?, col950=?, col951=?, col952=?, col953=?, col954=?, col955=?, col956=?, col957=?, col958=?, col959=?, col960=?, col961=?, col962=?, col963=?, col964=?, col965=?, col966=?, col967=?, col968=?, col969=?, col970=?, col971=?, col972=?, col973=?, col974=?, col975=?, col976=?, col977=?, col978=?, col979=?, col980=?, col981=?, col982=?, col983=?, col984=?, col985=?, col986=?, col987=?, col988=?, col989=?, col990=?, col991=?, col992=?, col993=?, col994=?, col995=?, col996=?, col997=?, col998=?, col999=?, col1000=? where id=?; + bindings: + - util: RandomAString + count: 1000 + params: [4, 4] + - util: RandomNumber + params: [1, 100000] \ No newline at end of file diff --git a/config/yugabyte/write_workloads/universe_creation.yaml b/config/yugabyte/write_workloads/universe_creation.yaml new file mode 100644 index 000000000..622083f08 --- /dev/null +++ b/config/yugabyte/write_workloads/universe_creation.yaml @@ -0,0 +1,56 @@ +benchmarks: + - name: perf-sysbench + workloadSpec: + type: sysbench + properties: + create: false + load: false + run: false + client-instance-type: c5.xlarge + sysbench-repo-branch: master + tables: 100 + table_size: 4000000 + workload_subtype: oltp_read_only + load_threads: 10 + run_threads: 10 + point_selects: 10 + num_rows_in_insert: 10 + test-user: <> + time: 100 + warmup-time: 100 + range_key_partitioning: false + range_selects: false + serial_cache_size: 1000 + thread-init-timeout: 90 + yb_owner: perf-team + clusterSpec: + platformId: 301 + #Template has ysql auth enabled . Password is Password@321 + templateName: m6i_8core_3node_1az_secure + properties: + ybSoftwareVersion: 2.17.1.0-b44 + # Review the gflags with actual before using in this yaml. + masterGFlags: + - "name": "enable_automatic_tablet_splitting" + "value": true + - "name": "ysql_enable_packed_row" + "value": true + # - "name": "ysql_yb_enable_expression_pushdown" + # "value": true + tserverGFlags: + - "name": "enable_automatic_tablet_splitting" + "value": true + - "name": "ysql_enable_packed_row" + "value": true + # - "name": "ysql_yb_enable_expression_pushdown" + # "value": true + jobGroup: + - name: sysbench + numClusters: 1 + reuse: true + clusterSpec: + overrides: {} + workloadSpec: + overrides: + workload_subtype: + - '{"workload": "oltp_read_only", "threads": [120]}' \ No newline at end of file diff --git a/modifyconfig.py b/modifyconfig.py new file mode 100644 index 000000000..fb411bbb4 --- /dev/null +++ b/modifyconfig.py @@ -0,0 +1,51 @@ +from logging import root +import xml.etree.ElementTree as ET +import sys +import json +import re +data = json.loads(sys.argv[1]) + +tree = ET.parse('config/{}/sample_{}_config.xml'.format(sys.argv[3], sys.argv[2])) +root = tree.getroot() + + + +for key, value in data.items(): + element = root.find(key) + value = str(value) + if key == "warmup": + element = root.find("works/work/warmup") + if element == None: + element = root.find("works/work") + newarmp = ET.SubElement(element, "warmup") + newarmp.text = value + else: + element.text = value + elif key == "time": + element = root.find("works/work/time") + if element != None: + element.text = value + # Check if loaderThreads is in the data + elif key == 'loaderThreads': + loader_threads_value = str(data['loaderThreads']) + + # Check if already exists + element = root.find("loaderThreads") + if element is None: + # Create element at the top level (direct child of root) + new_loader_threads = ET.SubElement(root, "loaderThreads") + new_loader_threads.text = loader_threads_value + else: + # If it exists, update its value + element.text = loader_threads_value + elif element != None: + if key == "url": + element.text = element.text.replace("localhost", value) + if "sslmode" in data: + element.text = element.text.replace("disable", "require") if data["sslmode"] else element.text.replace( + "require", "disable") + else: + element.text = value + +tree.write('config/{}/sample_{}_config.xml'.format(sys.argv[3], sys.argv[2])) +# python modifyconfig.py '{"url":"jdbc:postgresql://localhost:5433/yugabyte","username":"yugabyte","password":""}' seats \ No newline at end of file diff --git a/modifyyaml.py b/modifyyaml.py new file mode 100644 index 000000000..b48a664a5 --- /dev/null +++ b/modifyyaml.py @@ -0,0 +1,181 @@ +#!/usr/bin/python + +import json +import sys +import yaml +import os # Import the 'os' module for path manipulation +from jinja2 import Environment, FileSystemLoader, Undefined +from functools import reduce +from operator import getitem +from collections import OrderedDict + + +# Custom Undefined handler to return an empty string or leave placeholders as-is +class SilentUndefined(Undefined): + def _fail_with_undefined_error(self, *args, **kwargs): + return '' # Return empty string if undefined + + def __str__(self): + return self._fail_with_undefined_error() + + +def jinja2_modification(context, input_yaml): + """ + Renders the input YAML file as a Jinja2 template, supporting both + relative and absolute file paths. + """ + # Get the absolute path of the directory containing the template + template_dir = os.path.dirname(os.path.abspath(input_yaml)) + # Get the base name of the template file + template_file = os.path.basename(input_yaml) + + # Initialize Jinja2 environment with the correct template directory + template_env = Environment(loader=FileSystemLoader(searchpath=template_dir), undefined=SilentUndefined) + + # Load the template using its base name + template = template_env.get_template(template_file) + + # Write the rendered content back to the original file path + with open(input_yaml, 'w') as f: + f.write(template.render(context)) + + +# Load the YAML using OrderedDict to preserve the order of elements +def ordered_yaml_loader(stream, Loader=yaml.SafeLoader, object_pairs_hook=OrderedDict): + class OrderedLoader(Loader): + pass + + def construct_mapping(loader, node): + loader.flatten_mapping(node) + return object_pairs_hook(loader.construct_pairs(node)) + + OrderedLoader.add_constructor( + yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, + construct_mapping) + return yaml.load(stream, OrderedLoader) + + +# Custom dumper to preserve empty strings as "" instead of null +def ordered_yaml_dumper(data, stream=None, Dumper=yaml.SafeDumper, **kwds): + class OrderedDumper(Dumper): + pass + + # Add custom representer for OrderedDict to preserve order + def _dict_representer(dumper, data): + return dumper.represent_dict(data.items()) + + # Add custom representer for empty strings to prevent 'null' output + def _str_representer(dumper, value): + if not value or value == '' or value == 'null': + return dumper.represent_scalar('tag:yaml.org,2002:str', '') # Keep as empty string + return dumper.represent_scalar('tag:yaml.org,2002:str', value) + + OrderedDumper.add_representer(OrderedDict, _dict_representer) + OrderedDumper.add_representer(str, _str_representer) # Ensure empty strings are represented as "" + + return yaml.dump(data, stream, OrderedDumper, **kwds) + + +def set_nested_item(dataDict, mapList, val): + """Set item in nested dictionary, handling list indices if present.""" + for i, key in enumerate(mapList[:-1]): + if isinstance(reduce(getitem, mapList[:i], dataDict), list): + index = int(key[key.find("[") + 1:key.find("]")]) # Extract index inside brackets + mapList[i] = index # Replace the string with an integer index + reduce(getitem, mapList[:-1], dataDict)[mapList[-1]] = val + return dataDict + + +def handle_load_balance_url(url, driver, optimal_threads): + """ + Handle load-balance parameter in URL based on driver and optimalThreads setting. + If optimalThreads is true and driver is com.yugabyte.Driver, ensure load-balance=true is present. + """ + if not optimal_threads or driver != "com.yugabyte.Driver": + return url + + # Check if load-balance is already present in the URL + if "load-balance=" in url: + # If load-balance is present, ensure it's set to true + if "load-balance=false" in url: + url = url.replace("load-balance=false", "load-balance=true") + elif "load-balance=true" in url: + # Already set to true, no change needed + pass + else: + # load-balance is present but with no value, ensure it's true + # This handles cases like "load-balance" without a value + url = url.replace("load-balance&", "load-balance=true&") + url = url.replace("load-balance?", "load-balance=true?") + if url.endswith("load-balance"): + url = url.replace("load-balance", "load-balance=true") + else: + # load-balance is not present, add it + if "?" in url: + url += "&load-balance=true" + else: + url += "?load-balance=true" + + return url + + +def main(): + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + + yaml_file = sys.argv[2] + + try: + data = json.loads(sys.argv[1], strict=False) + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON context provided. {e}") + sys.exit(1) + + if not os.path.exists(yaml_file): + print(f"Error: YAML file not found at '{yaml_file}'") + sys.exit(1) + + jinja2_modification(data, yaml_file) + + with open(yaml_file) as f: + doc = ordered_yaml_loader(f, Loader=yaml.FullLoader) + + # Check if optimalThreads is set and handle load-balance URL modification + optimal_threads = data.get("optimalThreads", False) + driver = doc.get("driver", "") + + for key, value in data.items(): + if key == "warmup": + doc["works"]["work"]["warmup"] = value + elif key == "time": + doc["works"]["work"]["time_secs"] = value + elif key == "url": + doc[key] = doc[key].replace("localhost", value) + if "sslmode" in data: + doc[key] = doc[key].replace("disable", "require") if data["sslmode"] else doc[key].replace( + "require", "disable") + if "load-balance" in data and data['load-balance'] == True: + doc[key] = doc[key] + "&load-balance=true" + # Handle optimalThreads load-balance logic + if optimal_threads: + doc[key] = handle_load_balance_url(doc[key], driver, optimal_threads) + elif key == "optimalThreads": + # Set the optimalThreads property in the YAML + doc[key] = value + # Also handle load-balance URL modification if URL exists + if "url" in doc: + doc["url"] = handle_load_balance_url(doc["url"], driver, value) + elif key == "setAutoCommit": + doc["microbenchmark"]["properties"]["setAutoCommit"] = value + else: + nested_key = key.replace('[', '.[').split('.') + set_nested_item(doc, nested_key, value) + + with open(yaml_file, 'w') as fnew: + ordered_yaml_dumper(doc, fnew, Dumper=yaml.SafeDumper, allow_unicode=True) + return + + +if __name__ == "__main__": + main() diff --git a/perf-data-loader b/perf-data-loader new file mode 100755 index 000000000..4c64bfa6e --- /dev/null +++ b/perf-data-loader @@ -0,0 +1,278 @@ +#!/bin/bash + +# Initialize variables +CONFIG="" +TABLE_NAME="" +ROWS="" +GENERATE_ONLY=false +LOAD_ONLY=false +GEN_LOAD_ORDER=false +JAR_PATH="" + +# ANSI color codes +GREEN="\033[32m" +RED="\033[31m" +RESET="\033[0m" + +# Function to display help +function display_help { + echo "Usage: $0 --config --table-name --rows [--gen-config-only] [--load-only] [--gen-load-order]" + echo "Short forms: -c -t -r " + echo "Options:" + echo " -c, --config Configuration file" + echo " -t, --table-name Table name" + echo " -r, --rows Number of rows" + echo " --gen-config-only Only generate the loader/config file" + echo " --load-only Only load data into the database" + echo " --gen-load-order Generate table load order in the provided database" + echo " -h, --help Display this help message" + exit 0 +} + +# Function to find the jar file +function find_jar { + # Check current directory first + if [[ -f "benchbase.jar" ]]; then + JAR_PATH="benchbase.jar" + return + fi + + # Check target/benchbase-yugabyte/ + if [[ -f "target/benchbase-yugabyte/benchbase.jar" ]]; then + JAR_PATH="target/benchbase-yugabyte/benchbase.jar" + return + fi + + # Check target/benchbase-postgres/ + if [[ -f "target/benchbase-postgres/benchbase.jar" ]]; then + JAR_PATH="target/benchbase-postgres/benchbase.jar" + return + fi + + echo "Error: benchbase.jar not found in any expected location." + exit 1 +} + +# Function to show a fake progress bar while a command is running +show_progress_bar() { + local CMD_PID=$1 + local SECONDS=0 + + while kill -0 "$CMD_PID" 2>/dev/null; do + printf "\r[" + for ((i=0; i<50; i++)); do + if (( i < (SECONDS % 50) )); then + printf "=" + else + printf " " + fi + done + printf "] %d%%" $((SECONDS % 50 * 2)) + sleep 0.1 + done +} + +# Function to check command success or failure +# Function to check command success or failure +check_command_status() { + local CMD_PID=$1 + local SUCCESS_MSG=$2 + local FAILURE_MSG=$3 + local LOG_FILE=$4 + + wait "$CMD_PID" + CMD_EXIT_CODE=$? + # Clear the progress bar line + printf "\r\033[K" + if [ $CMD_EXIT_CODE -eq 0 ]; then + # Ensure the progress bar finishes at 100% on success + printf "\r[==================================================] 100%%\n" + echo -e "${GREEN}$SUCCESS_MSG${RESET}" + else + # Avoid showing 100% if the command fails + echo -e "${RED}$FAILURE_MSG${RESET}" + echo -e "${RED}\nConsole log:${RESET}" + cat "$LOG_FILE" + fi +} + +# Parse arguments +while [[ $# -gt 0 ]]; do + case $1 in + -c|--config) + CONFIG="$2" + shift # past argument + shift # past value + ;; + -t|--table-name) + TABLE_NAME="$2" + shift # past argument + shift # past value + ;; + -r|--rows) + ROWS="$2" + shift # past argument + shift # past value + ;; + --gen-config-only) + GENERATE_ONLY=true + shift # past argument + ;; + --load-only) + LOAD_ONLY=true + shift # past argument + ;; + --gen-load-order) + GEN_LOAD_ORDER=true + shift # past argument + ;; + -h|--help) + display_help + ;; + *) + echo "Invalid option: $1" + display_help + ;; + esac +done + +# Ensure that both --gen-config-only and --load-only are not provided simultaneously +if { [ "$GENERATE_ONLY" = true ] && [ "$LOAD_ONLY" = true ]; } || \ + { [ "$GENERATE_ONLY" = true ] && [ "$GEN_LOAD_ORDER" = true ]; } || \ + { [ "$LOAD_ONLY" = true ] && [ "$GEN_LOAD_ORDER" = true ]; }; then + echo "Error: Cannot use these conflicting parameters simultaneously. --gen-config-only, --load-only, --gen-load-order ." + exit 1 +fi + +# Find the JAR file +find_jar + +if [ "$LOAD_ONLY" = true ]; then + if [ -z "$CONFIG" ]; then + echo "Error: --config parameter is required with --load-only." + display_help + fi + + # Create a temporary file to capture output and errors + LOG_FILE=$(mktemp) + echo "Loading the data into the database now..." + # Start the Java command in the background + java -jar "$JAR_PATH" -b featurebench -c "$CONFIG" --load=True > "$LOG_FILE" 2>&1 & + CMD_PID=$! + # Show the progress bar while the command is running + show_progress_bar "$CMD_PID" + # Check if the command was successful and print the appropriate message + check_command_status "$CMD_PID" \ + "Data load to the table \`${TABLE_NAME}\` is successful." \ + "Failed to load data into the table: ${TABLE_NAME}." \ + "$LOG_FILE" + + # Clean up the log file + rm "$LOG_FILE" + exit 0 +fi + +if [ "$GENERATE_ONLY" = true ]; then + if [ -z "$CONFIG" ] || [ -z "$TABLE_NAME" ] || [ -z "$ROWS" ]; then + echo "Error: --config, --table-name, and --rows parameters are required with --gen-config-only." + display_help + fi + # Create a temporary file to capture output and errors + LOG_FILE=$(mktemp) + echo "Generating loader file for the table..." + # Start the Java command in the background + java -jar "$JAR_PATH" -b perf-dataloader -c "$CONFIG" -p tableName="$TABLE_NAME" -p rows="$ROWS" --load=True > "$LOG_FILE" 2>&1 & + CMD_PID=$! + # Show the progress bar while the command is running + show_progress_bar "$CMD_PID" + # Check if the command was successful and print the appropriate message + check_command_status "$CMD_PID" \ + "Loader file generated successfully: ${TABLE_NAME}_loader.yaml" \ + "Failed to generate loader file." \ + "$LOG_FILE" + + # Clean up the log file + rm "$LOG_FILE" + exit 0 +fi + +if [ "$GEN_LOAD_ORDER" = true ]; then + if [ -z "$CONFIG" ]; then + echo "Error: --config parameter is required with --gen-load-order." + display_help + fi + # Create a temporary file + TEMP_CONFIG=$(mktemp) + # Create a temporary file to capture output and errors + LOG_FILE=$(mktemp) + # Copy the content of the original CONFIG file to the temporary file + cp "$CONFIG" "$TEMP_CONFIG" + + # Append text to the temporary config file (you can customize the text as needed) + echo >> "$TEMP_CONFIG" + echo "gen-db-load-order: true" >> "$TEMP_CONFIG" + echo "Generating load order based on the provided config file..." + java -jar "$JAR_PATH" -b perf-dataloader -c "$TEMP_CONFIG" -p tableName="dummy" -p rows="1" --load=True > "$LOG_FILE" 2>&1 & + CMD_PID=$! + # Show the progress bar while the command is running + show_progress_bar "$CMD_PID" + # Check if the command was successful and print the appropriate message + check_command_status "$CMD_PID" \ + "Load order generated successfully in file \`load_order.json\` and is as follows: " \ + "Failed to generate load order for the database." \ + "$LOG_FILE" + # If successful, print the contents of the load order file + if [ $CMD_EXIT_CODE -eq 0 ]; then + cat "load_order.json" + echo "" + fi + # Clean up: delete the temporary config file + rm -f "$TEMP_CONFIG" + # Clean up the log file + rm "$LOG_FILE" + exit 0 +fi + + +# Check if required parameters are provided for the default operation +if [ -z "$CONFIG" ] || [ -z "$TABLE_NAME" ] || [ -z "$ROWS" ]; then + echo "Error: Missing required parameters." + display_help +fi + +# If no specific option is provided, do both generate and load with default config file location +# Create a temporary file to capture output and errors +LOG_FILE=$(mktemp) +echo "Generating loader file for the table..." +# Start the Java command in the background +java -jar "$JAR_PATH" -b perf-dataloader -c "$CONFIG" -p tableName="$TABLE_NAME" -p rows="$ROWS" --load=True > "$LOG_FILE" 2>&1 & +CMD_PID=$! +# Show the progress bar while the command is running +show_progress_bar "$CMD_PID" +# Check if the command was successful and print the appropriate message +check_command_status "$CMD_PID" \ + "Loader file generated successfully: ${TABLE_NAME}_loader.yaml" \ + "Failed to generate loader file." \ + "$LOG_FILE" + +# Clean up the log file +rm "$LOG_FILE" + +DEFAULT_CONFIG="${TABLE_NAME}_loader.yaml" + +# Create a temporary file to capture output and errors +LOG_FILE=$(mktemp) +echo "Loading the data into the database now..." +# Start the Java command in the background +java -jar "$JAR_PATH" -b featurebench -c "$DEFAULT_CONFIG" --load=True > "$LOG_FILE" 2>&1 & +CMD_PID=$! +# Show the progress bar while the command is running +show_progress_bar "$CMD_PID" +# Check if the command was successful and print the appropriate message +check_command_status "$CMD_PID" \ + "Data load to the table \`${TABLE_NAME}\` is successful." \ + "Failed to load data into the table: ${TABLE_NAME}." \ + "$LOG_FILE" + +# Clean up the log file +rm "$LOG_FILE" diff --git a/pom.xml b/pom.xml index f91c2054b..dbf69e366 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,7 @@ - + 4.0.0 @@ -15,6 +17,7 @@ 17 17 17 + posix ${project.basedir}/target @@ -112,6 +115,24 @@ + + yugabyte + + yugabyte + + + + com.yugabyte + jdbc-yugabytedb + 42.7.3-yb-4 + + + org.postgresql + postgresql + 42.4.0 + + + phoenix @@ -212,7 +233,11 @@ jaxb-runtime 4.0.0 - + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + 2.13.4 + org.hsqldb hsqldb @@ -226,6 +251,68 @@ test + + com.hubspot.jinjava + jinjava + 2.6.0 + + + + com.fasterxml.jackson.core + jackson-annotations + 2.13.4 + + + org.postgresql + postgresql + 42.4.0 + + + com.yugabyte + jdbc-yugabytedb + 42.3.4 + + + + + software.amazon.awssdk + cloudwatch + 2.20.162 + + + software.amazon.awssdk + auth + 2.20.162 + + + software.amazon.awssdk + regions + 2.20.162 + + + + software.amazon.awssdk + sso + 2.20.162 + + + software.amazon.awssdk + ssooidc + 2.20.162 + + + + com.github.jsqlparser + jsqlparser + 5.3 + + + + + org.openjdk.nashorn + nashorn-core + 15.4 + @@ -349,4 +436,4 @@ - + \ No newline at end of file diff --git a/src/main/assembly/tgz.xml b/src/main/assembly/tgz.xml index 6e7182cdf..58a41760e 100644 --- a/src/main/assembly/tgz.xml +++ b/src/main/assembly/tgz.xml @@ -11,9 +11,9 @@ ${project.basedir}/config - - ${project.basedir}/data - + + + ${project.basedir}/scripts @@ -36,6 +36,10 @@ ${project.basedir}/CONTRIBUTORS.md + + ${project.basedir}/perf-data-loader + + diff --git a/src/main/assembly/zip.xml b/src/main/assembly/zip.xml index be2c442f5..894278e38 100644 --- a/src/main/assembly/zip.xml +++ b/src/main/assembly/zip.xml @@ -11,9 +11,9 @@ ${project.basedir}/config - - ${project.basedir}/data - + + + ${project.basedir}/scripts @@ -36,6 +36,10 @@ ${project.basedir}/CONTRIBUTORS.md + + ${project.basedir}/perf-data-loader + + diff --git a/src/main/java/com/oltpbenchmark/BenchmarkState.java b/src/main/java/com/oltpbenchmark/BenchmarkState.java index b6d084ce3..fbaf131b1 100644 --- a/src/main/java/com/oltpbenchmark/BenchmarkState.java +++ b/src/main/java/com/oltpbenchmark/BenchmarkState.java @@ -32,6 +32,7 @@ public final class BenchmarkState { private final CountDownLatch startBarrier; private final AtomicInteger notDoneCount; private volatile State state = State.WARMUP; + private volatile long measurementStartNs = -1; /** * @param numThreads number of threads involved in the test: including the @@ -51,6 +52,10 @@ public long getTestStartNs() { return testStartNs; } + public long getMeasurementStartNs() { + return measurementStartNs; + } + public State getState() { synchronized (this) { return state; @@ -74,6 +79,9 @@ public void blockForStart() { public void startMeasure() { state = State.MEASURE; + if (measurementStartNs == -1) { + measurementStartNs = System.nanoTime(); + } } public void startColdQuery() { @@ -82,6 +90,9 @@ public void startColdQuery() { public void startHotQuery() { state = State.MEASURE; + if (measurementStartNs == -1) { + measurementStartNs = System.nanoTime(); + } } public void signalLatencyComplete() { diff --git a/src/main/java/com/oltpbenchmark/DBWorkload.java b/src/main/java/com/oltpbenchmark/DBWorkload.java index 3a7f87aaa..de762b991 100644 --- a/src/main/java/com/oltpbenchmark/DBWorkload.java +++ b/src/main/java/com/oltpbenchmark/DBWorkload.java @@ -18,16 +18,27 @@ package com.oltpbenchmark; + +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.hubspot.jinjava.Jinjava; +import com.hubspot.jinjava.JinjavaConfig; +import com.hubspot.jinjava.interpret.RenderResult; import com.oltpbenchmark.api.BenchmarkModule; import com.oltpbenchmark.api.TransactionType; import com.oltpbenchmark.api.TransactionTypes; import com.oltpbenchmark.api.Worker; import com.oltpbenchmark.types.DatabaseType; +import com.oltpbenchmark.types.State; import com.oltpbenchmark.util.*; +import org.json.JSONObject; import org.apache.commons.cli.*; import org.apache.commons.collections4.map.ListOrderedMap; import org.apache.commons.configuration2.HierarchicalConfiguration; import org.apache.commons.configuration2.XMLConfiguration; +import org.apache.commons.configuration2.YAMLConfiguration; import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder; import org.apache.commons.configuration2.builder.fluent.Parameters; import org.apache.commons.configuration2.convert.DisabledListDelimiterHandler; @@ -37,12 +48,26 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; +import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; +import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; +import software.amazon.awssdk.core.retry.RetryPolicy; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.cloudwatch.CloudWatchClient; +import software.amazon.awssdk.services.cloudwatch.model.*; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.sql.Connection; +import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Statement; +import java.time.Duration; +import java.time.Instant; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; public class DBWorkload { private static final Logger LOG = LoggerFactory.getLogger(DBWorkload.class); @@ -56,6 +81,16 @@ public class DBWorkload { * @param args * @throws Exception */ + private static boolean isOptionTrueForOptimalThreads(XMLConfiguration config, String key) { + if (!config.containsKey(key)) return false; + Object val = config.getProperty(key); + if (val instanceof Boolean) { + return (Boolean) val; + } else if (val instanceof String) { + return ((String) val).equalsIgnoreCase("true"); + } + return false; + } public static void main(String[] args) throws Exception { // create the command line parser @@ -95,18 +130,31 @@ public static void main(String[] args) throws Exception { String[] targetList = targetBenchmarks.split(","); List benchList = new ArrayList<>(); + List copyBenchList = new ArrayList<>(); // Use this list for filtering of the output List activeTXTypes = new ArrayList<>(); String configFile = argsLine.getOptionValue("c"); - XMLConfiguration xmlConfig = buildConfiguration(configFile); + XMLConfiguration xmlConfig = null; // Load the configuration for each benchmark int lastTxnId = 0; for (String plugin : targetList) { String pluginTest = "[@bench='" + plugin + "']"; + if (plugin.equalsIgnoreCase("featurebench") || plugin.equalsIgnoreCase("perf-dataloader")) + { + String[] params=null; + if (argsLine.hasOption("params")) { + params = argsLine.getOptionValues("params"); + LOG.info("Creating modified temporary input yaml with passed parameters from : "+ configFile); + configFile = replaceParametersInYaml(params,configFile); + } + xmlConfig = buildConfigurationFromYaml(configFile); + } + else + xmlConfig = buildConfiguration(configFile); // ---------------------------------------------------------------- // BEGIN LOADING WORKLOAD CONFIGURATION @@ -115,6 +163,7 @@ public static void main(String[] args) throws Exception { WorkloadConfiguration wrkld = new WorkloadConfiguration(); wrkld.setBenchmarkName(plugin); wrkld.setXmlConfig(xmlConfig); + wrkld.setConfigFilePath(configFile); // Pull in database configuration wrkld.setDatabaseType(DatabaseType.get(xmlConfig.getString("type"))); @@ -190,292 +239,715 @@ public static void main(String[] args) throws Exception { numTxnTypes = xmlConfig.configurationsAt("transactiontypes" + pluginTest + "/transactiontype").size(); } + List> workloads = + xmlConfig.configurationsAt("microbenchmark/properties/executeRules"); - List ttypes = new ArrayList<>(); - ttypes.add(TransactionType.INVALID); - int txnIdOffset = lastTxnId; - for (int i = 1; i <= numTxnTypes; i++) { - String key = "transactiontypes" + pluginTest + "/transactiontype[" + i + "]"; - String txnName = xmlConfig.getString(key + "/name"); + // optimalThreads check will be done later in execute phase only + int totalWorkloadCount = + plugin.equalsIgnoreCase("featurebench") ? + (workloads == null ? 1 : (workloads.size() == 0 ? 1 : workloads.size())) : 1; - // Get ID if specified; else increment from last one. - int txnId = i; - if (xmlConfig.containsKey(key + "/id")) { - txnId = xmlConfig.getInt(key + "/id"); + boolean createDone = false; + boolean loadDone = false; + + + Set uniqueRunWorkloads = new HashSet<>(); + List workloadsFromExecuteRules = new ArrayList<>(); + String fileForAllWorkloadList = "allWorkloads" + ".txt"; + + if (workloads != null && workloads.size() != 0) { + for (int workCount = 1; workCount <= totalWorkloadCount; workCount++) { + workloadsFromExecuteRules.add(workloads.get(workCount - 1) + .containsKey("workload") ? workloads.get(workCount - 1) + .getString("workload") : String.valueOf(workCount)); } - long preExecutionWait = 0; - if (xmlConfig.containsKey(key + "/preExecutionWait")) { - preExecutionWait = xmlConfig.getLong(key + "/preExecutionWait"); + try (PrintStream ps = new PrintStream(FileUtil.joinPath(fileForAllWorkloadList))) { + System.out.println("All Workloads:"); + for (int workCount = 1; workCount <= totalWorkloadCount; workCount++) { + ps.println((workloads.get(workCount - 1) + .containsKey("workload") ? workloads.get(workCount - 1).getString("workload") : workCount)); + System.out.println((workloads.get(workCount - 1) + .containsKey("workload") ? workloads.get(workCount - 1).getString("workload") : workCount)); + } + } + } else { + try (PrintStream ps = new PrintStream(FileUtil.joinPath(fileForAllWorkloadList))) { + ps.println("DEFAULT_WORKLOAD"); } + } - long postExecutionWait = 0; - if (xmlConfig.containsKey(key + "/postExecutionWait")) { - postExecutionWait = xmlConfig.getLong(key + "/postExecutionWait"); + if (isBooleanOptionSet(argsLine, "execute")) { + if ((argsLine.hasOption("workloads")) && !argsLine.getOptionValue("workloads").isEmpty()) { + List runWorkloads = List.of(argsLine.getOptionValue("workloads").trim().split("\\s*,\\s*")); + uniqueRunWorkloads.addAll(runWorkloads); + uniqueRunWorkloads.forEach(uniqueWorkload -> { + if (workloadsFromExecuteRules.contains(uniqueWorkload)) { + LOG.info("Workload: " + uniqueWorkload + " will be scheduled to run"); + } else if (workloadsFromExecuteRules.size() == 0 && + uniqueWorkload.equalsIgnoreCase("DEFAULT_WORKLOAD")) { + LOG.info("Running workload specified through code implementation"); + } else { + throw new RuntimeException("Wrong workload name provided in --workloads args: " + uniqueWorkload); + } + }); + } else { + workloadsFromExecuteRules + .forEach(workloadFromExecuteRule -> LOG.info("Workload: " + + workloadFromExecuteRule + " will be scheduled to run")); + uniqueRunWorkloads.addAll(workloadsFromExecuteRules); } + } - TransactionType tmpType = bench.initTransactionType(txnName, txnId + txnIdOffset, preExecutionWait, postExecutionWait); - // Keep a reference for filtering - activeTXTypes.add(tmpType); + for (int workCount = 1; workCount <= totalWorkloadCount; workCount++) { - // Add a ref for the active TTypes in this benchmark - ttypes.add(tmpType); - lastTxnId = i; - } + List> executeRules = + (workloads == null || workloads.size() == 0) ? null : workloads.get(workCount - 1) + .configurationsAt("run"); - // Wrap the list of transactions and save them - TransactionTypes tt = new TransactionTypes(ttypes); - wrkld.setTransTypes(tt); - LOG.debug("Using the following transaction types: {}", tt); - // Read in the groupings of transactions (if any) defined for this - // benchmark - int numGroupings = xmlConfig.configurationsAt("transactiontypes" + pluginTest + "/groupings/grouping").size(); - LOG.debug("Num groupings: {}", numGroupings); - for (int i = 1; i < numGroupings + 1; i++) { - String key = "transactiontypes" + pluginTest + "/groupings/grouping[" + i + "]"; + boolean isExecutePresent = xmlConfig.containsKey("microbenchmark/properties/execute"); + boolean isExecuteTrue = false; + if (isExecutePresent) { + isExecuteTrue = xmlConfig.getBoolean("microbenchmark/properties/execute"); + } - // Get the name for the grouping and make sure it's valid. - String groupingName = xmlConfig.getString(key + "/name").toLowerCase(); - if (!groupingName.matches("^[a-z]\\w*$")) { - LOG.error(String.format("Grouping name \"%s\" is invalid." + " Must begin with a letter and contain only" + " alphanumeric characters.", groupingName)); - System.exit(-1); - } else if (groupingName.equals("all")) { - LOG.error("Grouping name \"all\" is reserved." + " Please pick a different name."); - System.exit(-1); + if (plugin.equalsIgnoreCase("featurebench")) { + if (executeRules == null) { + numTxnTypes = 1; + + } else if (executeRules.size() == 0) { + executeRules = null; + numTxnTypes = 1; + } else { + if (!executeRules.get(0).containsKey("name")) { + executeRules = null; + numTxnTypes = 1; + } else { + numTxnTypes = executeRules.size(); + } + } } - // Get the weights for this grouping and make sure that there - // is an appropriate number of them. - List groupingWeights = Arrays.asList(xmlConfig.getString(key + "/weights").split("\\s*,\\s*")); - if (groupingWeights.size() != numTxnTypes) { - LOG.error(String.format("Grouping \"%s\" has %d weights," + " but there are %d transactions in this" + " benchmark.", groupingName, groupingWeights.size(), numTxnTypes)); - System.exit(-1); + List ttypes = new ArrayList<>(); + ttypes.add(TransactionType.INVALID); + + int txnIdOffset = lastTxnId; + if (plugin.equalsIgnoreCase("featurebench")) { + txnIdOffset = 0; } + for (int i = 1; i <= numTxnTypes; i++) { + String key = "transactiontypes" + pluginTest + "/transactiontype[" + i + "]"; + String txnName = xmlConfig.getString(key + "/name"); + + // Get ID if specified; else increment from last one. + int txnId = i; + if (xmlConfig.containsKey(key + "/id")) { + txnId = xmlConfig.getInt(key + "/id"); + } - LOG.debug("Creating grouping with name, weights: {}, {}", groupingName, groupingWeights); - } + long preExecutionWait = 0; + if (xmlConfig.containsKey(key + "/preExecutionWait")) { + preExecutionWait = xmlConfig.getLong(key + "/preExecutionWait"); + } + long postExecutionWait = 0; + if (xmlConfig.containsKey(key + "/postExecutionWait")) { + postExecutionWait = xmlConfig.getLong(key + "/postExecutionWait"); + } + TransactionType tmpType; + if (plugin.equalsIgnoreCase("featurebench")) { + if (isExecuteTrue) { + tmpType = bench.initTransactionType("FeatureBench", txnId + txnIdOffset, preExecutionWait, + postExecutionWait, "execute"); + } else if (executeRules != null) { + tmpType = bench.initTransactionType("FeatureBench", txnId + txnIdOffset, preExecutionWait, + postExecutionWait, executeRules.get(i - 1).getString("name")); + } else { + tmpType = bench.initTransactionType("FeatureBench", txnId + txnIdOffset, preExecutionWait, + postExecutionWait, "executeOnce"); + } + } else { + tmpType = bench.initTransactionType(txnName, txnId + txnIdOffset, preExecutionWait, postExecutionWait); + } - benchList.add(bench); + // Keep a reference for filtering + activeTXTypes.add(tmpType); - // ---------------------------------------------------------------- - // WORKLOAD CONFIGURATION - // ---------------------------------------------------------------- + // Add a ref for the active TTypes in this benchmark + ttypes.add(tmpType); + lastTxnId = i; + } - int size = xmlConfig.configurationsAt("/works/work").size(); - for (int i = 1; i < size + 1; i++) { - final HierarchicalConfiguration work = xmlConfig.configurationAt("works/work[" + i + "]"); - List weight_strings; + // Wrap the list of transactions and save them + TransactionTypes tt = new TransactionTypes(ttypes); + wrkld.setTransTypes(tt); + LOG.debug("Using the following transaction types: {}", tt); + + // Read in the groupings of transactions (if any) defined for this + // benchmark + int numGroupings = xmlConfig.configurationsAt("transactiontypes" + pluginTest + "/groupings/grouping").size(); + LOG.debug("Num groupings: {}", numGroupings); + for (int i = 1; i < numGroupings + 1; i++) { + String key = "transactiontypes" + pluginTest + "/groupings/grouping[" + i + "]"; + + // Get the name for the grouping and make sure it's valid. + String groupingName = xmlConfig.getString(key + "/name").toLowerCase(); + if (!groupingName.matches("^[a-z]\\w*$")) { + LOG.error(String.format("Grouping name \"%s\" is invalid." + " Must begin with a letter and contain only" + " alphanumeric characters.", groupingName)); + System.exit(-1); + } else if (groupingName.equals("all")) { + LOG.error("Grouping name \"all\" is reserved." + " Please pick a different name."); + System.exit(-1); + } - // use a workaround if there are multiple workloads or single - // attributed workload - if (targetList.length > 1 || work.containsKey("weights[@bench]")) { - weight_strings = Arrays.asList(work.getString("weights" + pluginTest).split("\\s*,\\s*")); - } else { - weight_strings = Arrays.asList(work.getString("weights[not(@bench)]").split("\\s*,\\s*")); - } - - int rate = 1; - boolean rateLimited = true; - boolean disabled = false; - boolean timed; - - // can be "disabled", "unlimited" or a number - String rate_string; - rate_string = work.getString("rate[not(@bench)]", ""); - rate_string = work.getString("rate" + pluginTest, rate_string); - if (rate_string.equals(RATE_DISABLED)) { - disabled = true; - } else if (rate_string.equals(RATE_UNLIMITED)) { - rateLimited = false; - } else if (rate_string.isEmpty()) { - LOG.error(String.format("Please specify the rate for phase %d and workload %s", i, plugin)); - System.exit(-1); - } else { - try { - rate = Integer.parseInt(rate_string); - if (rate < 1) { - LOG.error("Rate limit must be at least 1. Use unlimited or disabled values instead."); - System.exit(-1); - } - } catch (NumberFormatException e) { - LOG.error(String.format("Rate string must be '%s', '%s' or a number", RATE_DISABLED, RATE_UNLIMITED)); + // Get the weights for this grouping and make sure that there + // is an appropriate number of them. + List groupingWeights = Arrays.asList(xmlConfig.getString(key + "/weights").split("\\s*,\\s*")); + if (groupingWeights.size() != numTxnTypes) { + LOG.error(String.format("Grouping \"%s\" has %d weights," + " but there are %d transactions in this" + " benchmark.", groupingName, groupingWeights.size(), numTxnTypes)); System.exit(-1); } - } - Phase.Arrival arrival = Phase.Arrival.REGULAR; - String arrive = work.getString("@arrival", "regular"); - if (arrive.equalsIgnoreCase("POISSON")) { - arrival = Phase.Arrival.POISSON; - } - // We now have the option to run all queries exactly once in - // a serial (rather than random) order. - boolean serial = Boolean.parseBoolean(work.getString("serial", Boolean.FALSE.toString())); + LOG.debug("Creating grouping with name, weights: {}, {}", groupingName, groupingWeights); + } - int activeTerminals; - activeTerminals = work.getInt("active_terminals[not(@bench)]", terminals); - activeTerminals = work.getInt("active_terminals" + pluginTest, activeTerminals); - // If using serial, we should have only one terminal - if (serial && activeTerminals != 1) { - LOG.warn("Serial ordering is enabled, so # of active terminals is clamped to 1."); - activeTerminals = 1; - } - if (activeTerminals > terminals) { - LOG.error(String.format("Configuration error in work %d: " + "Number of active terminals is bigger than the total number of terminals", i)); - System.exit(-1); + benchList.add(bench); + if (workCount == 1) { + copyBenchList.add(bench); } - int time = work.getInt("/time", 0); - int warmup = work.getInt("/warmup", 0); - timed = (time > 0); - if (!timed) { - if (serial) { - LOG.info("Timer disabled for serial run; will execute" + " all queries exactly once."); + // ---------------------------------------------------------------- + // WORKLOAD CONFIGURATION + // ---------------------------------------------------------------- + + int size = xmlConfig.configurationsAt("/works/work").size(); + for (int i = 1; i < size + 1; i++) { + final HierarchicalConfiguration work = xmlConfig.configurationAt("works/work[" + i + "]"); + List weight_strings; + + // use a workaround if there are multiple workloads or single + // attributed workload + int time = work.getInt("/time", 0); + int warmup = work.getInt("/warmup", 0); + + if (targetList.length > 1 || work.containsKey("weights[@bench]")) { + weight_strings = Arrays.asList(work.getString("weights" + pluginTest).split("\\s*,\\s*")); + } else if (plugin.equalsIgnoreCase("featurebench") || plugin.equalsIgnoreCase("perf-dataloader")) { + weight_strings = List.of(); + time = work.getInt("/time_secs", 0); + // get workload specific time in secs + if(workloads != null && workloads.size() >= workCount && workloads.get(workCount-1).containsKey("time_secs")){ + time = workloads.get(workCount-1).getInt("time_secs"); + } } else { - LOG.error("Must provide positive time bound for" + " non-serial executions. Either provide" + " a valid time or enable serial mode."); + weight_strings = Arrays.asList(work.getString("weights[not(@bench)]").split("\\s*,\\s*")); + } + + int rate = 1; + boolean rateLimited = true; + boolean disabled = false; + boolean timed; + + // can be "disabled", "unlimited" or a number + String rate_string; + rate_string = work.getString("rate[not(@bench)]", ""); + rate_string = work.getString("rate" + pluginTest, rate_string); + if (rate_string.equals(RATE_DISABLED)) { + disabled = true; + } else if (rate_string.equals(RATE_UNLIMITED)) { + rateLimited = false; + } else if (rate_string.isEmpty()) { + LOG.error(String.format("Please specify the rate for phase %d and workload %s", i, plugin)); System.exit(-1); + } else { + try { + rate = Integer.parseInt(rate_string); + if (rate < 1) { + LOG.error("Rate limit must be at least 1. Use unlimited or disabled values instead."); + System.exit(-1); + } + } catch (NumberFormatException e) { + LOG.error(String.format("Rate string must be '%s', '%s' or a number", RATE_DISABLED, RATE_UNLIMITED)); + System.exit(-1); + } + } + Phase.Arrival arrival = Phase.Arrival.REGULAR; + String arrive = work.getString("@arrival", "regular"); + if (arrive.equalsIgnoreCase("POISSON")) { + arrival = Phase.Arrival.POISSON; } - } else if (serial) { - LOG.info("Timer enabled for serial run; will run queries" + " serially in a loop until the timer expires."); - } - if (warmup < 0) { - LOG.error("Must provide non-negative time bound for" + " warmup."); - System.exit(-1); - } - ArrayList weights = new ArrayList<>(); + // We now have the option to run all queries exactly once in + // a serial (rather than random) order. + boolean serial = Boolean.parseBoolean(work.getString("serial", Boolean.FALSE.toString())); - double totalWeight = 0; - for (String weightString : weight_strings) { - double weight = Double.parseDouble(weightString); - totalWeight += weight; - weights.add(weight); - } + int activeTerminals; + activeTerminals = work.getInt("active_terminals[not(@bench)]", terminals); + activeTerminals = work.getInt("active_terminals" + pluginTest, activeTerminals); + // If using serial, we should have only one terminal + if (serial && activeTerminals != 1) { + LOG.warn("Serial ordering is enabled, so # of active terminals is clamped to 1."); + activeTerminals = 1; + } + if (activeTerminals > terminals) { + LOG.error(String.format("Configuration error in work %d: " + "Number of active terminals is bigger than the total number of terminals", i)); + System.exit(-1); + } - long roundedWeight = Math.round(totalWeight); - if (roundedWeight != 100) { - LOG.warn("rounded weight [{}] does not equal 100. Original weight is [{}]", roundedWeight, totalWeight); - } + //-----------> + if (plugin.equalsIgnoreCase("featurebench") && executeRules == null && !isExecuteTrue) { + serial = true; + time = 0; + } + timed = (time > 0); + if (!timed) { + if (serial) { + LOG.info("Timer disabled for serial run; will execute" + " all queries exactly once."); + } else { + LOG.error("Must provide positive time bound for" + " non-serial executions. Either provide" + " a valid time or enable serial mode."); + System.exit(-1); + } + } else if (serial) { + LOG.info("Timer enabled for serial run; will run queries" + " serially in a loop until the timer expires."); + } + if (warmup < 0) { + LOG.error("Must provide non-negative time bound for" + " warmup."); + System.exit(-1); + } + ArrayList weights = new ArrayList<>(); + + double totalWeight = 0; + if (plugin.equalsIgnoreCase("featurebench")) { + if (executeRules == null) { + totalWeight = 100; + weights.add(100.0); + } else { + double defaultweight = 100.0 / executeRules.size(); + boolean containWeight = executeRules.get(0).containsKey("weight"); + for (HierarchicalConfiguration rule : executeRules) { + double weight; + if (containWeight) { + if (!rule.containsKey("weight")) { + throw new RuntimeException("Please Provide weight or not to all queries"); + } + weight = rule.getDouble("weight"); + } else { + if (rule.containsKey("weight")) { + throw new RuntimeException("Please Provide weight or not to all queries"); + } + weight = defaultweight; + } + + totalWeight += weight; + weights.add(weight); + } + } + } else { + for (String weightString : weight_strings) { + double weight = Double.parseDouble(weightString); + totalWeight += weight; + weights.add(weight); + } + } - wrkld.addPhase(i, time, warmup, rate, weights, rateLimited, disabled, serial, timed, activeTerminals, arrival); - } + long roundedWeight = Math.round(totalWeight); - // CHECKING INPUT PHASES - int j = 0; - for (Phase p : wrkld.getPhases()) { - j++; - if (p.getWeightCount() != numTxnTypes) { - LOG.error(String.format("Configuration files is inconsistent, phase %d contains %d weights but you defined %d transaction types", j, p.getWeightCount(), numTxnTypes)); - if (p.isSerial()) { - LOG.error("However, note that since this a serial phase, the weights are irrelevant (but still must be included---sorry)."); + if (roundedWeight != 100) { + LOG.warn("rounded weight [{}] does not equal 100. Original weight is [{}]", roundedWeight, totalWeight); } - System.exit(-1); - } - } - // Generate the dialect map - wrkld.init(); + wrkld.addPhase(i, time, warmup, rate, weights, rateLimited, disabled, serial, timed, activeTerminals, arrival); + } - } + // CHECKING INPUT PHASES + int j = 0; + for (Phase p : wrkld.getPhases()) { + j++; + if (p.getWeightCount() != numTxnTypes) { + LOG.error(String.format("Configuration files is inconsistent, phase %d contains %d weights but you defined %d transaction types", j, p.getWeightCount(), numTxnTypes)); + if (p.isSerial()) { + LOG.error("However, note that since this a serial phase, the weights are irrelevant (but still must be included---sorry)."); + } + System.exit(-1); + } + } + // Generate the dialect map + wrkld.init(); - // Export StatementDialects - if (isBooleanOptionSet(argsLine, "dialects-export")) { - BenchmarkModule bench = benchList.get(0); - if (bench.getStatementDialects() != null) { - LOG.info("Exporting StatementDialects for {}", bench); - String xml = bench.getStatementDialects().export(bench.getWorkloadConfiguration().getDatabaseType(), bench.getProcedures().values()); - LOG.debug(xml); - System.exit(0); - } - throw new RuntimeException("No StatementDialects is available for " + bench); - } - // Create the Benchmark's Database - if (isBooleanOptionSet(argsLine, "create")) { - try { - for (BenchmarkModule benchmark : benchList) { - LOG.info("Creating new {} database...", benchmark.getBenchmarkName().toUpperCase()); - runCreator(benchmark); - LOG.info("Finished creating new {} database...", benchmark.getBenchmarkName().toUpperCase()); + // Export StatementDialects + if (isBooleanOptionSet(argsLine, "dialects-export")) { + BenchmarkModule benchtemp = benchList.get(0); + if (benchtemp.getStatementDialects() != null) { + LOG.info("Exporting StatementDialects for {}", benchtemp); + String xml = benchtemp.getStatementDialects().export(benchtemp.getWorkloadConfiguration().getDatabaseType(), benchtemp.getProcedures().values()); + LOG.debug(xml); + System.exit(0); + } + throw new RuntimeException("No StatementDialects is available for " + benchtemp); } - } catch (Throwable ex) { - LOG.error("Unexpected error when creating benchmark database tables.", ex); - System.exit(1); - } - } else { - LOG.debug("Skipping creating benchmark database tables"); - } - // Refresh the catalog. - for (BenchmarkModule benchmark : benchList) { - benchmark.refreshCatalog(); - } + // Create the Benchmark's Database + if (isBooleanOptionSet(argsLine, "create") && !createDone) { + try { + for (BenchmarkModule benchmark : benchList) { + LOG.info("Creating new {} database...", benchmark.getBenchmarkName().toUpperCase()); + + boolean analyze_on_all_tables = benchmark.getWorkloadConfiguration().getXmlConfig() + .getBoolean("analyze_on_all_tables", false); + + if (benchmark.getBenchmarkName().equalsIgnoreCase("featurebench")) + { + if (benchmark.getWorkloadConfiguration().getXmlConfig().containsKey("createdb")) { + String createDbDDL = + benchmark.getWorkloadConfiguration().getXmlConfig().getString("createdb"); + String newUrl = runCreatorDB(benchmark, createDbDDL, analyze_on_all_tables); + LOG.info("New JDBC URL : " + newUrl); + benchmark.getWorkloadConfiguration().setUrl(newUrl); + benchmark.getWorkloadConfiguration().getXmlConfig().setProperty("url", newUrl); + } + else if(analyze_on_all_tables) { + enableOptimizerStatistics(benchmark); + } + } + runCreator(benchmark); + LOG.info("Finished creating new {} database...", benchmark.getBenchmarkName().toUpperCase()); + } + } catch (Throwable ex) { + LOG.error("Unexpected error when creating benchmark database tables.", ex); + System.exit(1); + } + createDone = true; + } else { + LOG.debug("Skipping creating benchmark database tables"); + } + if (!isBooleanOptionSet(argsLine, "create") && !createDone) { + for (BenchmarkModule benchmark : benchList) { + if (benchmark.getBenchmarkName().equalsIgnoreCase("featurebench") && benchmark.getWorkloadConfiguration().getXmlConfig().containsKey("createdb")) { + String newUrl = getNewUrl(benchmark, benchmark.getWorkloadConfiguration().getXmlConfig().getString("createdb")); + LOG.info("New JDBC URL : " + newUrl); + benchmark.getWorkloadConfiguration().setUrl(newUrl); + benchmark.getWorkloadConfiguration().getXmlConfig().setProperty("url", newUrl); + } + } + createDone = true; + } - // Clear the Benchmark's Database - if (isBooleanOptionSet(argsLine, "clear")) { - try { + + // Refresh the catalog. for (BenchmarkModule benchmark : benchList) { - LOG.info("Clearing {} database...", benchmark.getBenchmarkName().toUpperCase()); benchmark.refreshCatalog(); - benchmark.clearDatabase(); - benchmark.refreshCatalog(); - LOG.info("Finished clearing {} database...", benchmark.getBenchmarkName().toUpperCase()); } - } catch (Throwable ex) { - LOG.error("Unexpected error when clearing benchmark database tables.", ex); - System.exit(1); - } - } else { - LOG.debug("Skipping clearing benchmark database tables"); - } - // Execute Loader - if (isBooleanOptionSet(argsLine, "load")) { - try { - for (BenchmarkModule benchmark : benchList) { - LOG.info("Loading data into {} database...", benchmark.getBenchmarkName().toUpperCase()); - runLoader(benchmark); - LOG.info("Finished loading data into {} database...", benchmark.getBenchmarkName().toUpperCase()); + // Clear the Benchmark's Database + if (isBooleanOptionSet(argsLine, "clear")) { + try { + for (BenchmarkModule benchmark : benchList) { + LOG.info("Clearing {} database...", benchmark.getBenchmarkName().toUpperCase()); + benchmark.refreshCatalog(); + benchmark.clearDatabase(); + benchmark.refreshCatalog(); + LOG.info("Finished clearing {} database...", benchmark.getBenchmarkName().toUpperCase()); + } + } catch (Throwable ex) { + LOG.error("Unexpected error when clearing benchmark database tables.", ex); + System.exit(1); + } + } else { + LOG.debug("Skipping clearing benchmark database tables"); } - } catch (Throwable ex) { - LOG.error("Unexpected error when loading benchmark database records.", ex); - System.exit(1); - } - } else { - LOG.debug("Skipping loading benchmark database records"); - } + // Execute Loader + if (isBooleanOptionSet(argsLine, "load") && !loadDone) { + try { + for (BenchmarkModule benchmark : benchList) { + LOG.info("Loading data into {} database...", benchmark.getBenchmarkName().toUpperCase()); + runLoader(benchmark); + LOG.info("Finished loading data into {} database...", benchmark.getBenchmarkName().toUpperCase()); + } + } catch (Throwable ex) { + LOG.error("Unexpected error when loading benchmark database records.", ex); + System.exit(1); + } + loadDone = true; + } else { + LOG.debug("Skipping loading benchmark database records"); + } + + + // Check optimalThreads constraint for execute phase + if (isBooleanOptionSet(argsLine, "execute") && isOptionTrueForOptimalThreads(xmlConfig, "optimalThreads")) { + // Determine the number of workloads to be executed + int workloadsToExecute = 0; + if (argsLine.hasOption("workloads") && !argsLine.getOptionValue("workloads").isEmpty()) { + // If --workloads option is specified, count the workloads in that option + List runWorkloads = List.of(argsLine.getOptionValue("workloads").trim().split("\\s*,\\s*")); + workloadsToExecute = runWorkloads.size(); + } else { + // If no --workloads option, all workloads from XML configuration will be executed + // For optimalThreads, we expect only one workload in the YAML file + workloadsToExecute = workloads == null ? 1 : (workloads.size() == 0 ? 1 : workloads.size()); + } + + if (workloadsToExecute > 1) { + LOG.error("Error: optimalThreads can only be used when there is exactly one workload. Found {} workloads to execute.", workloadsToExecute); + System.exit(1); + } + } + + if (isBooleanOptionSet(argsLine, "execute") && (argsLine.hasOption("workloads")) && executeRules != null) { + String val = workloads.get(workCount - 1).getString("workload"); + if (uniqueRunWorkloads.contains(val) || uniqueRunWorkloads.contains("DEFAULT_WORKLOAD")) { + LOG.info("Starting Workload " + (workloads.get(workCount - 1).containsKey("workload") ? workloads.get(workCount - 1).getString("workload") : workCount)); + // Add optimal thread finding here for current workload + if (xmlConfig.containsKey("optimalThreads") && xmlConfig.getBoolean("optimalThreads")) { + double targetCPU = xmlConfig.getDouble("targetCPU", 80.0); + double toleranceCPU = xmlConfig.getDouble("toleranceCPU", 5.0); + int samplingTime = xmlConfig.getInt("samplingTime", 0); + + LOG.info("Finding optimal threads for workload: {}", val); + LOG.info("First BenchmarkModule: {}", benchList.get(0)); + LOG.info("targetCPU: {}, toleranceCPU: {}", targetCPU, toleranceCPU); + + // Store original terminal count + int originalTerminals = benchList.get(0).getWorkloadConfiguration().getTerminals(); + LOG.info("Terminal for starting: {}", originalTerminals); + String workloadName = executeRules == null ? null : workloads.get(workCount - 1).getString("workload"); + // Find optimal threads for this workload + double scalingMinDeltaPercent = xmlConfig.getDouble("scalingMinDeltaPercent", DEFAULT_SCALING_MIN_DELTA_PERCENT); + boolean linearPGthread = xmlConfig.getBoolean("linearPGthread", false); + int threadIncrement = xmlConfig.getInt("threadIncrement", 3); + int restingTimeSecs = xmlConfig.getInt("restingTimeSecs", 120); + int flatMaxScalingSteps = xmlConfig.getInt("flatMaxScalingSteps", DEFAULT_FLAT_MAX_SCALING_STEPS); + boolean useThroughputThreshold = xmlConfig.getBoolean("useThroughputThreshold", false); + boolean truncateBetweenIterations = xmlConfig.getBoolean("truncateBetweenIterations", false); + List iterationCleanupDDLs = xmlConfig.containsKey("microbenchmark/properties/iterationCleanup") + ? xmlConfig.getList(String.class, "microbenchmark/properties/iterationCleanup") + : (xmlConfig.containsKey("microbenchmark/properties/create") + ? xmlConfig.getList(String.class, "microbenchmark/properties/create") + : null); + int optimalThreads = findOptimalThreadCount(benchList.get(0), terminals, targetCPU, toleranceCPU, workloadName, workCount, samplingTime, + scalingMinDeltaPercent, threadIncrement, restingTimeSecs, flatMaxScalingSteps, linearPGthread, + useThroughputThreshold, truncateBetweenIterations, iterationCleanupDDLs); + + // Sleep between optimal-threads search and the final measured run so system can stabilize + if (restingTimeSecs > 0) { + try { + LOG.info("Sleeping for {} seconds before the measured run so system can stabilize", restingTimeSecs); + Thread.sleep(restingTimeSecs * 1000L); + } catch (InterruptedException e) { + LOG.error("Error sleeping", e); + } + } + + // Update the configuration with optimal thread count + for (BenchmarkModule benchi : benchList) { + Phase oldPhase = benchi.getWorkloadConfiguration().getPhases().get(0); + Phase newPhase = new Phase( + // Use the correct constructor arguments for Phase + "FEATUREBENCH", + oldPhase.getId(), + oldPhase.getTime(), + oldPhase.getWarmupTime(), + oldPhase.getRate(), + oldPhase.getWeights(), + oldPhase.isRateLimited(), + oldPhase.isDisabled(), + oldPhase.isSerial(), + oldPhase.isTimed(), + optimalThreads, + oldPhase.getArrival() + ); + // Replace the phase in the config + benchi.getWorkloadConfiguration().getPhases().clear(); + benchi.getWorkloadConfiguration().getPhases().add(newPhase); + benchi.getWorkloadConfiguration().setTerminals(optimalThreads); + benchi.getWorkloadConfiguration().setTerminals(optimalThreads); + benchi.getWorkloadConfiguration().setIsOptimalThreadsWorkload(false); + } + xmlConfig.setProperty("terminals", optimalThreads); + LOG.info("Using optimal thread count for workload {}: {} (original was: {})", + val, optimalThreads, originalTerminals); + + } + + try { + Results r = runWorkload(benchList, intervalMonitor, workCount); + writeOutputs(r, activeTXTypes, argsLine, xmlConfig, + executeRules == null ? null : workloads.get(workCount - 1).getString("workload"), + executeRules == null ? null : workloads.get(workCount - 1).getString("customTags", null), + executeRules != null && workloads.get(workCount - 1).getBoolean("skipReport", false) + ); + writeHistograms(r); + + boolean checkZeroRows = benchList.get(0).getBenchmarkName().equalsIgnoreCase("featurebench") && (executeRules == null ? true : workloads.get(workCount - 1).getBoolean("zeroRowsValidation", true)); + + if(checkZeroRows){ + checkCompletedTransaction(r); + } + + if (argsLine.hasOption("json-histograms")) { + String histogram_json = writeJSONHistograms(r); + String fileName = argsLine.getOptionValue("json-histograms"); + FileUtil.writeStringToFile(new File(fileName), histogram_json); + LOG.info("Histograms JSON Data: " + fileName); + } + } catch (Throwable ex) { + LOG.error("Unexpected error when executing benchmarks.", ex); + System.exit(1); + } + } + } - // Execute Workload - if (isBooleanOptionSet(argsLine, "execute")) { - // Bombs away! - try { - Results r = runWorkload(benchList, intervalMonitor); - writeOutputs(r, activeTXTypes, argsLine, xmlConfig); - writeHistograms(r); - if (argsLine.hasOption("json-histograms")) { - String histogram_json = writeJSONHistograms(r); - String fileName = argsLine.getOptionValue("json-histograms"); - FileUtil.writeStringToFile(new File(fileName), histogram_json); - LOG.info("Histograms JSON Data: " + fileName); + // Execute Workload + else if (isBooleanOptionSet(argsLine, "execute")) { + if (executeRules == null) { + LOG.info("Starting Workload " + workCount); + } else { + LOG.info("Starting Workload " + (workloads.get(workCount - 1).containsKey("workload") ? workloads.get(workCount - 1).getString("workload") : workCount)); + if (xmlConfig.containsKey("optimalThreads") && xmlConfig.getBoolean("optimalThreads")) { + String val = workloads.get(workCount - 1).getString("workload"); + double targetCPU = xmlConfig.getDouble("targetCPU", 80.0); + double toleranceCPU = xmlConfig.getDouble("toleranceCPU", 5.0); + int samplingTime = xmlConfig.getInt("samplingTime", 0); + + LOG.info("Finding optimal threads for workload: {}", val); + LOG.info("First BenchmarkModule: {}", benchList.get(0)); + LOG.info("targetCPU: {}, toleranceCPU: {}", targetCPU, toleranceCPU); + + // Store original terminal count + int originalTerminals = benchList.get(0).getWorkloadConfiguration().getTerminals(); + LOG.info("Terminal for starting: {}", originalTerminals); + String workloadName = executeRules == null ? null : workloads.get(workCount - 1).getString("workload"); + // Find optimal threads for this workload + double scalingMinDeltaPercent = xmlConfig.getDouble("scalingMinDeltaPercent", DEFAULT_SCALING_MIN_DELTA_PERCENT); + boolean linearPGthread = xmlConfig.getBoolean("linearPGthread", false); + int threadIncrement = xmlConfig.getInt("threadIncrement", 3); + int restingTimeSecs = xmlConfig.getInt("restingTimeSecs", 120); + int flatMaxScalingSteps = xmlConfig.getInt("flatMaxScalingSteps", DEFAULT_FLAT_MAX_SCALING_STEPS); + boolean useThroughputThreshold = xmlConfig.getBoolean("useThroughputThreshold", false); + boolean truncateBetweenIterations = xmlConfig.getBoolean("truncateBetweenIterations", false); + List iterationCleanupDDLs = xmlConfig.containsKey("microbenchmark/properties/iterationCleanup") + ? xmlConfig.getList(String.class, "microbenchmark/properties/iterationCleanup") + : (xmlConfig.containsKey("microbenchmark/properties/create") + ? xmlConfig.getList(String.class, "microbenchmark/properties/create") + : null); + int optimalThreads = findOptimalThreadCount(benchList.get(0), terminals, targetCPU, toleranceCPU, workloadName, workCount, samplingTime, + scalingMinDeltaPercent, threadIncrement, restingTimeSecs, flatMaxScalingSteps, linearPGthread, + useThroughputThreshold, truncateBetweenIterations, iterationCleanupDDLs); + + // Sleep between optimal-threads search and the final measured run so system can stabilize + if (restingTimeSecs > 0) { + try { + LOG.info("Sleeping for {} seconds before the measured run so system can stabilize", restingTimeSecs); + Thread.sleep(restingTimeSecs * 1000L); + } catch (InterruptedException e) { + LOG.error("Error sleeping", e); + } + } + + // Update the configuration with optimal thread count + for (BenchmarkModule benchi : benchList) { + Phase oldPhase = benchi.getWorkloadConfiguration().getPhases().get(0); + Phase newPhase = new Phase( + // Use the correct constructor arguments for Phase + "FEATUREBENCH", + oldPhase.getId(), + oldPhase.getTime(), + oldPhase.getWarmupTime(), + oldPhase.getRate(), + oldPhase.getWeights(), + oldPhase.isRateLimited(), + oldPhase.isDisabled(), + oldPhase.isSerial(), + oldPhase.isTimed(), + optimalThreads, + oldPhase.getArrival() + ); + // Replace the phase in the config + benchi.getWorkloadConfiguration().getPhases().clear(); + benchi.getWorkloadConfiguration().getPhases().add(newPhase); + benchi.getWorkloadConfiguration().setTerminals(optimalThreads); + benchi.getWorkloadConfiguration().setTerminals(optimalThreads); + benchi.getWorkloadConfiguration().setIsOptimalThreadsWorkload(false); + } + // Update the configuration with optimal thread count + xmlConfig.setProperty("terminals", optimalThreads); + + LOG.info("Using optimal thread count for workload {}: {} (original was: {})", + val, optimalThreads, originalTerminals); + } + } + // Bombs away! + try { + Results r = runWorkload(benchList, intervalMonitor, workCount); + // if block currently only valid for bulkload experiments + if(xmlConfig.containsKey("microbenchmark/properties/workload")) { + writeOutputs(r, activeTXTypes, argsLine, xmlConfig, + xmlConfig.getString("microbenchmark/properties/workload"), null,false); + } + else { + writeOutputs(r, activeTXTypes, argsLine, xmlConfig, + executeRules == null ? null : workloads.get(workCount - 1).getString("workload"), + executeRules == null ? null : workloads.get(workCount - 1).getString("customTags", null), + executeRules != null && workloads.get(workCount - 1).getBoolean("skipReport", false)); + } + writeHistograms(r); + + boolean checkZeroRows = benchList.get(0).getBenchmarkName().equalsIgnoreCase("featurebench") && (executeRules == null ? true : workloads.get(workCount - 1).getBoolean("zeroRowsValidation", true)); + + if(checkZeroRows){ + checkCompletedTransaction(r); + } + + if (argsLine.hasOption("json-histograms")) { + String histogram_json = writeJSONHistograms(r); + String fileName = argsLine.getOptionValue("json-histograms"); + FileUtil.writeStringToFile(new File(fileName), histogram_json); + LOG.info("Histograms JSON Data: " + fileName); + } + } catch (Throwable ex) { + LOG.error("Unexpected error when executing benchmarks.", ex); + System.exit(1); + } + + } else { + LOG.info("Skipping benchmark workload execution"); } - } catch (Throwable ex) { - LOG.error("Unexpected error when executing benchmarks.", ex); - System.exit(1); + benchList.clear(); + wrkld.clearPhase(); + activeTXTypes.clear(); } - } else { - LOG.info("Skipping benchmark workload execution"); + if (argsLine.hasOption("cleanup") && isBooleanOptionSet(argsLine, "cleanup")) { + for (BenchmarkModule benchmarkModule : copyBenchList) { + if (xmlConfig.containsKey("microbenchmark/properties/cleanup")) { + List ddls = xmlConfig.getList(String.class, "microbenchmark/properties/cleanup"); + try { + Statement stmtObj = benchmarkModule.makeConnection().createStatement(); + for (String ddl : ddls) { + stmtObj.execute(ddl); + } + LOG.info("\n=================Cleanup Phase taking from Yaml=========\n"); + stmtObj.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + else { + LOG.info("No cleanup phase mentioned in YAML, but flag provided in run! "); + } + } + } } } @@ -493,21 +965,32 @@ private static Options buildOptions(XMLConfiguration pluginConfig) { options.addOption("d", "directory", true, "Base directory for the result files, default is current directory"); options.addOption(null, "dialects-export", true, "Export benchmark SQL to a dialects file"); options.addOption("jh", "json-histograms", true, "Export histograms to JSON file"); + options.addOption("workloads", "workloads", true, "Run some specific workloads"); + options.addOption("p", "params", true, "Use variables through CLI for YAML"); + options.addOption(null, "cleanup", true, "Clean up the database"); return options; } private static XMLConfiguration buildConfiguration(String filename) throws ConfigurationException { Parameters params = new Parameters(); - FileBasedConfigurationBuilder builder = new FileBasedConfigurationBuilder<>(XMLConfiguration.class) - .configure(params.xml() - .setFileName(filename) - .setListDelimiterHandler(new DisabledListDelimiterHandler()) - .setExpressionEngine(new XPathExpressionEngine())); + FileBasedConfigurationBuilder builder = new FileBasedConfigurationBuilder<>(XMLConfiguration.class).configure(params.xml().setFileName(filename).setListDelimiterHandler(new DisabledListDelimiterHandler()).setExpressionEngine(new XPathExpressionEngine())); return builder.getConfiguration(); } + private static XMLConfiguration buildConfigurationFromYaml(String filename) throws ConfigurationException { + + Parameters params = new Parameters(); + FileBasedConfigurationBuilder builder = new FileBasedConfigurationBuilder<>(YAMLConfiguration.class).configure(params.hierarchical().setFileName(filename).setListDelimiterHandler(new DisabledListDelimiterHandler()).setExpressionEngine(new XPathExpressionEngine())); + + XMLConfiguration conf = new XMLConfiguration(builder.getConfiguration()); + conf.setListDelimiterHandler(new DisabledListDelimiterHandler()); + conf.setExpressionEngine(new XPathExpressionEngine()); + return conf; + + } + private static void writeHistograms(Results r) { StringBuilder sb = new StringBuilder(); sb.append("\n"); @@ -524,6 +1007,7 @@ private static void writeHistograms(Results r) { sb.append(StringUtil.bold("Unknown Status Transactions:")).append("\n").append(r.getUnknown()).append("\n\n"); + sb.append(StringUtil.bold("Zero Rows Transactions:")).append("\n").append(r.getZeroRows()).append("\n\n"); if (!r.getAbortMessages().isEmpty()) { sb.append("\n\n").append(StringUtil.bold("User Aborts:")).append("\n").append(r.getAbortMessages()); } @@ -551,22 +1035,29 @@ private static String writeJSONHistograms(Results r) { * @param xmlConfig * @throws Exception */ - private static void writeOutputs(Results r, List activeTXTypes, CommandLine argsLine, XMLConfiguration xmlConfig) throws Exception { + private static void writeOutputs(Results r, List activeTXTypes, CommandLine argsLine, + XMLConfiguration xmlConfig, String workload_name, + String customTags,Boolean skipReport) throws Exception { // If an output directory is used, store the information String outputDirectory = "results"; + String filePathForOutputJson = "results/output.json"; + Map> workloadToSummaryMap = new TreeMap<>(); + if (argsLine.hasOption("d")) { outputDirectory = argsLine.getOptionValue("d"); } - + if (activeTXTypes.get(0).getName().equalsIgnoreCase("featurebench")) { + outputDirectory = outputDirectory + "/" + (workload_name == null ? TimeUtil.getCurrentTimeString() : (workload_name + "/" + TimeUtil.getCurrentTimeString())); + } FileUtil.makeDirIfNotExists(outputDirectory); ResultWriter rw = new ResultWriter(r, xmlConfig, argsLine); String name = StringUtils.join(StringUtils.split(argsLine.getOptionValue("b"), ','), '-'); - String baseFileName = name + "_" + TimeUtil.getCurrentTimeString(); + String baseFileName = name; int windowSize = Integer.parseInt(argsLine.getOptionValue("s", "5")); @@ -602,10 +1093,39 @@ private static void writeOutputs(Results r, List activeTXTypes, } } - String configFileName = baseFileName + ".config.xml"; - try (PrintStream ps = new PrintStream(FileUtil.joinPath(outputDirectory, configFileName))) { - LOG.info("Output benchmark config into file: {}", configFileName); - rw.writeConfig(ps); + if (name.equalsIgnoreCase("featurebench")) { + String configFileName = baseFileName + ".config.yaml"; + try (PrintStream ps = new PrintStream(FileUtil.joinPath(outputDirectory, configFileName))) { + LOG.info("Output benchmark config into file: {}", configFileName); + rw.writeYamlConfig(ps); + } + String fbDetailedFileName = baseFileName + ".detailed.json"; + try (PrintStream ps = new PrintStream(FileUtil.joinPath(outputDirectory, fbDetailedFileName))) { + LOG.info("Output detailed summary into file: {}", fbDetailedFileName); + File file = new File(filePathForOutputJson); + if (file.exists()) { + ObjectMapper mapper = new ObjectMapper(new JsonFactory()); + workloadToSummaryMap.putAll(mapper.readValue(file, TreeMap.class)); + } + if(workload_name == null || workload_name.isEmpty()) + workload_name = baseFileName; + workloadToSummaryMap.put(workload_name, rw.writeDetailedSummary(ps, customTags, skipReport, workload_name)); + + try { + FileWriter writer = new FileWriter(filePathForOutputJson); + writer.write(JSONUtil.format(JSONUtil.toJSONString(workloadToSummaryMap))); + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + } else { + String configFileName = baseFileName + ".config.xml"; + try (PrintStream ps = new PrintStream(FileUtil.joinPath(outputDirectory, configFileName))) { + LOG.info("Output benchmark config into file: {}", configFileName); + rw.writeConfig(ps); + } } String resultsFileName = baseFileName + ".results.csv"; @@ -613,11 +1133,19 @@ private static void writeOutputs(Results r, List activeTXTypes, LOG.info("Output results into file: {} with window size {}", resultsFileName, windowSize); rw.writeResults(windowSize, ps); } - - for (TransactionType t : activeTXTypes) { - String fileName = baseFileName + ".results." + t.getName() + ".csv"; - try (PrintStream ps = new PrintStream(FileUtil.joinPath(outputDirectory, fileName))) { - rw.writeResults(windowSize, ps, t); + if (name.equalsIgnoreCase("featurebench")) { + for (TransactionType t : activeTXTypes) { + String fileName = baseFileName + ".results." + t.getTransactionName() + ".csv"; + try (PrintStream ps = new PrintStream(FileUtil.joinPath(outputDirectory, fileName))) { + rw.writeResults(windowSize, ps, t); + } + } + } else { + for (TransactionType t : activeTXTypes) { + String fileName = baseFileName + ".results." + t.getName() + ".csv"; + try (PrintStream ps = new PrintStream(FileUtil.joinPath(outputDirectory, fileName))) { + rw.writeResults(windowSize, ps, t); + } } } @@ -628,17 +1156,86 @@ private static void runCreator(BenchmarkModule bench) throws SQLException, IOExc bench.createDatabase(); } + private static String runCreatorDB(BenchmarkModule benchmark, String totalDDL, + boolean analyze_on_all_tables) throws SQLException { + Statement stmtObj = benchmark.makeConnection().createStatement(); + stmtObj.execute(totalDDL); + Pattern patternCreateDB = Pattern.compile("create database (.+?) ", Pattern.CASE_INSENSITIVE); + Matcher matcherCreateDB = patternCreateDB.matcher(totalDDL); + boolean matchFoundforcreate = matcherCreateDB.find(); + String createDDL = matcherCreateDB.group(0); + String pattern = "database\\s(\\w+)\\s"; + Pattern db = Pattern.compile(pattern); + Matcher m = db.matcher(createDDL); + String dbName = ""; + if (m.find()) { + dbName = m.group(1); + } else { + LOG.warn("Incorrect DDL for create database"); + } + String url = benchmark.getWorkloadConfiguration().getUrl(); + String[] pieces = url.split("\\?", 10); + Pattern p = Pattern.compile("[a-zA-Z_]+$", Pattern.CASE_INSENSITIVE); + Matcher matcher = p.matcher(pieces[0]); + boolean matchFound = matcher.find(); + if (matchFound) { + LOG.info(matcher.group(0)); + } else { + LOG.info("No match!"); + } + if (analyze_on_all_tables) { + stmtObj.execute(String.format("ALTER DATABASE %s SET yb_enable_optimizer_statistics to true;", dbName)); + } + int index = url.indexOf(matcher.group(0), url.indexOf(matcher.group(0)) + 1); + String newUrl = url.substring(0, index) + dbName + url.substring(index + matcher.group(0).length()); + stmtObj.close(); + return newUrl; + } + + private static String getNewUrl(BenchmarkModule benchmark, String totalDDL) throws SQLException { + Pattern patternCreateDB = Pattern.compile("create database (.+?) ", Pattern.CASE_INSENSITIVE); + Matcher matcherCreateDB = patternCreateDB.matcher(totalDDL); + boolean matchFoundforcreate = matcherCreateDB.find(); + String createDDL = matcherCreateDB.group(0); + String pattern = "database\\s(\\w+)\\s"; + Pattern db = Pattern.compile(pattern); + Matcher m = db.matcher(createDDL); + String dbName = ""; + if (m.find()) { + dbName = m.group(1); + } else { + LOG.warn("Incorrect DDL for create database"); + } + String url = benchmark.getWorkloadConfiguration().getUrl(); + String[] pieces = url.split("\\?", 10); + Pattern p = Pattern.compile("[a-zA-Z0-9]+$", Pattern.CASE_INSENSITIVE); + Matcher matcher = p.matcher(pieces[0]); + boolean matchFound = matcher.find(); + if (matchFound) { + LOG.info(matcher.group(0)); + } else { + LOG.info("No match!"); + } + int index = url.indexOf(matcher.group(0), url.indexOf(matcher.group(0)) + 1); + return url.substring(0, index) + dbName + url.substring(index + matcher.group(0).length()); + } + private static void runLoader(BenchmarkModule bench) throws SQLException, InterruptedException { LOG.debug(String.format("Loading %s Database", bench)); bench.loadDatabase(); } - private static Results runWorkload(List benchList, int intervalMonitor) throws IOException { + private static Results runWorkload(List benchList, int intervalMonitor, int workcount) throws IOException { List> workers = new ArrayList<>(); List workConfs = new ArrayList<>(); for (BenchmarkModule bench : benchList) { LOG.info("Creating {} virtual terminals...", bench.getWorkloadConfiguration().getTerminals()); - workers.addAll(bench.makeWorkers()); + if (bench.getBenchmarkName().equalsIgnoreCase("featurebench")) { + workers.addAll(bench.makeWorkers(workcount)); + } else { + workers.addAll(bench.makeWorkers()); + } + int num_phases = bench.getWorkloadConfiguration().getNumberOfPhases(); LOG.info(String.format("Launching the %s Benchmark with %s Phase%s...", bench.getBenchmarkName().toUpperCase(), num_phases, (num_phases > 1 ? "s" : ""))); @@ -673,4 +1270,786 @@ private static boolean isBooleanOptionSet(CommandLine argsLine, String key) { } return (false); } + private static String replaceParametersInYaml(String[] params, String file) throws IOException { + + Map context = new HashMap<>(); + JinjavaConfig jc = JinjavaConfig.newBuilder().withFailOnUnknownTokens(true).build(); + Jinjava jinjava = new Jinjava(jc); + + int index; + for (String var : params) { + index = var.indexOf('='); + context.put(var.substring(0, index), var.substring(index + 1)); + } + + String configFilename = file.substring(file.lastIndexOf("/") + 1); + InputStream inputStream = new FileInputStream(file); + assert inputStream != null; + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); + String template = reader.lines().collect(Collectors.joining(System.lineSeparator())); + + RenderResult renderResult = jinjava.renderForResult(template, context); + if (renderResult.getErrors().isEmpty()) { + + String newYaml = jinjava.render(template, context); + String newPath = Paths.get("").toAbsolutePath() + "/temp_input.yaml"; + File newfile = new File(newPath); + + if (!newfile.exists()) { + newfile.createNewFile(); + } + + FileWriter fw = new FileWriter(newfile); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(newYaml); + bw.close(); + return newPath; + + } else { + throw new IllegalArgumentException(renderResult.getErrors().stream() + .map(Object::toString) + .collect(Collectors.joining(","))); + } + } + + public static void enableOptimizerStatistics(BenchmarkModule benchmark) throws SQLException { + String url = benchmark.getWorkloadConfiguration().getUrl(); + String[] pieces = url.split("\\?", 10); + Pattern p = Pattern.compile("[a-zA-Z0-9]+$", Pattern.CASE_INSENSITIVE); + Matcher matcher = p.matcher(pieces[0]); + boolean matchFound = matcher.find(); + if (matchFound) { + String databaseName = matcher.group(0); + Statement stmtObj = benchmark.makeConnection().createStatement(); + stmtObj.execute(String.format("ALTER DATABASE %s SET yb_enable_optimizer_statistics to true;", databaseName)); + } else { + LOG.info("No match!"); + } + + } + + // Returns a list of CPU utilizations (percent) for all nodes + private static List getYBCPUUtilizationAllNodes(BenchmarkModule bench) throws SQLException { + List cpuList = new ArrayList<>(); + Connection conn = null; + Statement stmt = null; + ResultSet rs = null; + try { + conn = bench.makeConnection(); + stmt = conn.createStatement(); + rs = stmt.executeQuery("select uuid, metrics, status, error from yb_servers_metrics() ORDER BY uuid ;"); + while (rs.next()) { + String metricsJson = rs.getString("metrics"); + try { + ObjectMapper mapper = new ObjectMapper(); + JsonNode rootNode = mapper.readTree(metricsJson); + double cpuUser = 0.0, cpuSystem = 0.0; + if (rootNode.has("cpu_usage_user")) { + cpuUser = Double.parseDouble(rootNode.get("cpu_usage_user").asText()); + } + if (rootNode.has("cpu_usage_system")) { + cpuSystem = Double.parseDouble(rootNode.get("cpu_usage_system").asText()); + } + double totalCPU = (cpuUser + cpuSystem) * 100.0; // percent + cpuList.add(totalCPU); + } catch (JsonProcessingException | NumberFormatException e) { + LOG.error("Error parsing metrics JSON", e); + } + } + } catch (SQLException e) { + LOG.error("Error getting YugabyteDB metrics", e); + } finally { + if (rs != null) { + rs.close(); + } + if (stmt != null) { + stmt.close(); + } + if (conn != null) { + conn.close(); + } + } + return cpuList; + } + + // Test CloudWatch connectivity + private static boolean testCloudWatchConnectivity(String awsRegion) { + try { + CloudWatchClient testClient = CloudWatchClient.builder() + .region(Region.of(awsRegion)) + .credentialsProvider(DefaultCredentialsProvider.create()) + .overrideConfiguration(ClientOverrideConfiguration.builder() + .apiCallTimeout(Duration.ofSeconds(10)) + .build()) + .build(); + + // Simple test call to list metrics (this should work with basic permissions) + ListMetricsRequest testRequest = ListMetricsRequest.builder() + .namespace("AWS/RDS") + .build(); + + testClient.listMetrics(testRequest); + testClient.close(); + LOG.info("CloudWatch connectivity test successful for region: {}", awsRegion); + return true; + } catch (Exception e) { + LOG.warn("CloudWatch connectivity test failed for region {}: {}", awsRegion, e.getMessage()); + return false; + } + } + + // Returns CPU utilization for RDS PostgreSQL instance via CloudWatch + private static double getRDSCPUUtilization(String dbInstanceIdentifier, String awsRegion) { + double cpuUtilization = 0.0; + CloudWatchClient cloudWatchClient = null; + + try { + // Configure client override settings with timeouts and retries + ClientOverrideConfiguration clientConfig = ClientOverrideConfiguration.builder() + .apiCallTimeout(Duration.ofSeconds(60)) + .apiCallAttemptTimeout(Duration.ofSeconds(30)) + .retryPolicy(RetryPolicy.builder() + .numRetries(3) + .build()) + .build(); + + // Build CloudWatch client with explicit configuration + cloudWatchClient = CloudWatchClient.builder() + .region(Region.of(awsRegion)) + .credentialsProvider(DefaultCredentialsProvider.create()) + .overrideConfiguration(clientConfig) + .build(); + + Instant endTime = Instant.now(); + Instant startTime = endTime.minusSeconds(240); // 5 minutes ago + + Dimension dbInstanceDimension = Dimension.builder() + .name("DBInstanceIdentifier") + .value(dbInstanceIdentifier) + .build(); + + GetMetricStatisticsRequest request = GetMetricStatisticsRequest.builder() + .namespace("AWS/RDS") + .metricName("CPUUtilization") + .dimensions(dbInstanceDimension) + .startTime(startTime) + .endTime(endTime) + .period(60) // 1 minute periods + .statistics(Statistic.AVERAGE) + .build(); + + GetMetricStatisticsResponse response = cloudWatchClient.getMetricStatistics(request); + + if (response.datapoints().size() > 0) { + // Get the most recent datapoint + Datapoint latestDatapoint = response.datapoints().stream() + .max((d1, d2) -> d1.timestamp().compareTo(d2.timestamp())) + .orElse(null); + + if (latestDatapoint != null) { + cpuUtilization = latestDatapoint.average(); + LOG.info("RDS CPU Utilization: {}%", cpuUtilization); + } + } else { + LOG.warn("No CPU utilization data found for RDS instance: {}", dbInstanceIdentifier); + } + + } catch (software.amazon.awssdk.core.exception.SdkClientException e) { + if (e.getCause() instanceof java.net.UnknownHostException) { + LOG.error("DNS resolution failed for CloudWatch endpoint. Check network connectivity and DNS configuration. Region: {}, Instance: {}", awsRegion, dbInstanceIdentifier); + LOG.error("Consider checking: 1) Internet connectivity, 2) DNS settings, 3) VPC configuration if running in private subnet"); + } else { + LOG.error("AWS SDK error getting RDS CPU utilization from CloudWatch: {}", e.getMessage()); + } + } catch (software.amazon.awssdk.services.cloudwatch.model.CloudWatchException e) { + LOG.error("CloudWatch service error: {}. Check permissions and RDS instance identifier.", e.awsErrorDetails().errorMessage()); + } catch (Exception e) { + LOG.error("Unexpected error getting RDS CPU utilization from CloudWatch", e); + } finally { + if (cloudWatchClient != null) { + try { + cloudWatchClient.close(); + } catch (Exception e) { + LOG.warn("Error closing CloudWatch client: {}", e.getMessage()); + } + } + } + return cpuUtilization; + } + + // Detects if we're running against YugabyteDB vs RDS PostgreSQL + private static boolean isYugabyteDB(BenchmarkModule bench) { + try (Connection conn = bench.makeConnection(); + Statement stmt = conn.createStatement()) { + + // Try to execute YugabyteDB-specific function + try (ResultSet rs = stmt.executeQuery("SELECT version()")) { + if (rs.next()) { + String version = rs.getString(1).toLowerCase(); + return version.contains("yugabyte"); + } + } + } catch (SQLException e) { + LOG.debug("Error checking database type", e); + } + return false; + } + + // Extracts RDS instance identifier from JDBC URL + private static String extractRDSInstanceIdentifier(String jdbcUrl) { + // Example URL: jdbc:postgresql://mydb.cluster-xyz.us-east-1.rds.amazonaws.com:5432/postgres + // Extract the part before the first dot as instance identifier + try { + String url = jdbcUrl.replace("jdbc:postgresql://", ""); + if (url.contains(".rds.amazonaws.com")) { + String hostname = url.split(":")[0]; + return hostname.split("\\.")[0]; + } + } catch (Exception e) { + LOG.error("Error extracting RDS instance identifier from URL: {}", jdbcUrl, e); + } + return null; + } + + // Extracts AWS region from JDBC URL + private static String extractAWSRegion(String jdbcUrl) { + // Example URL: jdbc:postgresql://mydb.cluster-xyz.us-east-1.rds.amazonaws.com:5432/postgres + try { + String url = jdbcUrl.replace("jdbc:postgresql://", ""); + if (url.contains(".rds.amazonaws.com")) { + String hostname = url.split(":")[0]; + + // Find the string between the last dot and ".rds.amazonaws.com" + int rdsIndex = hostname.indexOf(".rds.amazonaws.com"); + if (rdsIndex > 0) { + String beforeRds = hostname.substring(0, rdsIndex); + int lastDotIndex = beforeRds.lastIndexOf("."); + if (lastDotIndex >= 0) { + return beforeRds.substring(lastDotIndex + 1); + } + } + } + } catch (Exception e) { + LOG.error("Error extracting AWS region from URL: {}", jdbcUrl, e); + } + return "us-east-1"; // Default region + } + + /** + * Default number of consecutive thread up-scales with insufficient metric increase + * (CPU or throughput, depending on mode) before we confirm a plateau and stop the search. + * The counter resets to zero as soon as any single up-scale produces a delta ≥ + * {@code scalingMinDeltaPercent}, so a single noisy sample early in the sweep no longer + * poisons the result. Can be overridden via the YAML config key {@code flatMaxScalingSteps}. + */ + private static final int DEFAULT_FLAT_MAX_SCALING_STEPS = 2; + + /** + * Default minimum delta percentage for a scaling step to be considered non-flat. + * In CPU mode this is an absolute percentage-point increase in CPU utilization; + * in throughput mode it is a relative percentage increase in req/s. + * Can be overridden via the YAML config key {@code scalingMinDeltaPercent}. + */ + private static final double DEFAULT_SCALING_MIN_DELTA_PERCENT = 5.0; + + private static int findOptimalThreadCount(BenchmarkModule bench, int terminals, double targetCPU, double toleranceCPU, String workloadName, int workCount, int samplingTime, + double scalingMinDeltaPercent, int threadIncrement, int restingTimeSecs, int flatMaxScalingSteps, boolean linearPGthread, + boolean useThroughputThreshold, boolean truncateBetweenIterations, List iterationCleanupDDLs) throws InterruptedException { + double minTargetCPU = targetCPU - toleranceCPU; + double maxTargetCPU = targetCPU + toleranceCPU; + LOG.info("minTargetCPU: {}, maxTargetCPU: {}", minTargetCPU, maxTargetCPU); + int interval_gap = 5; + ObjectMapper mapper = new ObjectMapper(); + // Prepare for logging + String outputDir = "results/" + workloadName; + String logFile = outputDir + "/optimal_threads_log.csv"; + String jsonFile = outputDir + "/optimal_threads_log.json"; + try { + Files.createDirectories(Paths.get(outputDir)); + // Write header if file does not exist + if (!Files.exists(Paths.get(logFile))) { + StringBuilder header = new StringBuilder("threads"); + for (int i = 1; i <= 3; i++) header.append(",reading" + i); + header.append(","); + header.append("max_per_node,max_cpu\n"); + Files.write(Paths.get(logFile), header.toString().getBytes()); + } + } catch (Exception e) { + LOG.error("Error creating log directory or file", e); + } + + + int threads = terminals; + int max_iterations = 50; + int optimalThreads = threads; + List> jsonResults = new ArrayList<>(); + Map threadCpuMap = new HashMap<>(); + Double cpuAtPreviousScalingStep = null; + // Thread count from the previous scaling iteration to be used if flatCPU confirmed + Integer threadsAtPreviousScalingStep = null; + int consecutiveFlatCpuSteps = 0; + int flatRunStartThreads = 0; + boolean flatCpuDetected = false; + double bestThroughput = 0; + int bestThroughputThreads = threads; + int consecutiveFlatThroughputSteps = 0; + boolean flatThroughputDetected = false; + Map threadThroughputMap = new HashMap<>(); + if (useThroughputThreshold) { + LOG.info("Throughput threshold mode ENABLED: will grow threads until throughput plateaus " + + "(scalingMinDeltaPercent={}%, flatMaxScalingSteps={})", + scalingMinDeltaPercent, flatMaxScalingSteps); + } else { + LOG.info("CPU threshold mode: scalingMinDeltaPercent={}, flatMaxScalingSteps={}", + scalingMinDeltaPercent, flatMaxScalingSteps); + } + + // Detect database type and prepare RDS monitoring if needed + boolean isYugabyteDatabase = isYugabyteDB(bench); + String rdsInstanceIdentifier = null; + String awsRegion = null; + + if (isYugabyteDatabase) { + threads = terminals < 3 ? 3 : terminals; + } + + if (!isYugabyteDatabase) { + // Extract RDS instance details from connection URL + String jdbcUrl = bench.getWorkloadConfiguration().getUrl(); + rdsInstanceIdentifier = extractRDSInstanceIdentifier(jdbcUrl); + awsRegion = extractAWSRegion(jdbcUrl); + LOG.info("Detected RDS PostgreSQL. Instance: {}, Region: {}", rdsInstanceIdentifier, awsRegion); + + if (rdsInstanceIdentifier == null) { + LOG.error("Could not extract RDS instance identifier from URL: {}", jdbcUrl); + return optimalThreads; + } + + // Check if CloudWatch monitoring should be skipped + String skipCloudWatch = System.getProperty("benchbase.skip.cloudwatch", "false"); + if ("true".equalsIgnoreCase(skipCloudWatch)) { + LOG.info("CloudWatch monitoring disabled via system property. Using default thread count."); + return optimalThreads; + } + + // Test CloudWatch connectivity before proceeding + if (!testCloudWatchConnectivity(awsRegion)) { + LOG.warn("CloudWatch connectivity test failed. Consider using -Dbenchbase.skip.cloudwatch=true to disable CloudWatch monitoring."); + LOG.info("Proceeding with monitoring but expect potential failures..."); + } + } else { + LOG.info("Detected YugabyteDB database"); + } + + // Store original phase + Phase originalPhase = bench.getWorkloadConfiguration().getPhases().get(0); + Phase createOriginalPhase = new Phase( + "FEATUREBENCH", + originalPhase.getId(), + originalPhase.getTime(), + originalPhase.getWarmupTime(), + originalPhase.getRate(), + originalPhase.getWeights(), + originalPhase.isRateLimited(), + originalPhase.isDisabled(), + originalPhase.isSerial(), + originalPhase.isTimed(), + originalPhase.getActiveTerminals(), + originalPhase.getArrival() + ); + + for(int iter=0; iter 0) { + LOG.info("Sleeping for {} seconds between iterations so that system is stable again", restingTimeSecs); + Thread.sleep(restingTimeSecs * 1000L); + } + + + LOG.info("Finding optimal threads.... iteration_no. {}, current_threads: {}", iter, threads); + Phase oldPhase = bench.getWorkloadConfiguration().getPhases().get(0); + int totalTime = samplingTime != 0 ? samplingTime : oldPhase.getTime() + oldPhase.getWarmupTime(); + Phase newPhase = new Phase( + "FEATUREBENCH", + oldPhase.getId(), + totalTime, + 0, + oldPhase.getRate(), + oldPhase.getWeights(), + oldPhase.isRateLimited(), + oldPhase.isDisabled(), + oldPhase.isSerial(), + oldPhase.isTimed(), + threads, // <-- set to your thread count + oldPhase.getArrival() + ); + // Replace the phase in the config + bench.getWorkloadConfiguration().getPhases().clear(); + bench.getWorkloadConfiguration().getPhases().add(newPhase); + bench.getWorkloadConfiguration().setTerminals(threads); + bench.getWorkloadConfiguration().setIsOptimalThreadsWorkload(true); + + double avgMaxCPU = 0.0; + List> allNodeReadings = new ArrayList<>(); + try { + // Get the current phase (assume first phase for test) + List phases = bench.getWorkloadConfiguration().getPhases(); + if (phases.isEmpty()) { + LOG.error("No phases found in workload configuration"); + break; + } + final Results[] iterationResults = new Results[1]; + Thread workloadThread = new Thread(() -> { + try { + iterationResults[0] = runWorkload(Collections.singletonList(bench), 0, workCount); + } catch (Exception e) { + LOG.error("Error running workload for thread test", e); + throw new RuntimeException(e); + } + }); + workloadThread.start(); + + // Wait for measurement phase to actually start. Bound the wait so we don't hang forever if the workload thread dies before reaching MEASURE. + final long measureWaitTimeoutMs = totalTime * 1000L + 120_000L; + final long measureWaitStart = System.currentTimeMillis(); + WorkloadState workloadState = bench.getWorkloadConfiguration().getWorkloadState(); + + while (workloadState == null || workloadState.getBenchmarkState().getState() != State.MEASURE) { + if (!workloadThread.isAlive()) { + throw new RuntimeException( + "Workload thread died before reaching MEASURE state (threads=" + threads + ")"); + } + if (System.currentTimeMillis() - measureWaitStart > measureWaitTimeoutMs) { + throw new RuntimeException( + "Timed out waiting for MEASURE state after " + + (measureWaitTimeoutMs / 1000) + "s (threads=" + threads + ")"); + } + Thread.sleep(2000); + workloadState = bench.getWorkloadConfiguration().getWorkloadState(); + } + LOG.info("Connection established. Sleeping for 3/4 of total time..."); + Thread.sleep((long)(totalTime * 0.75 * 1000)); + LOG.info("Starting CPU collection..."); + + + if (isYugabyteDatabase) { + // YugabyteDB monitoring - multiple nodes + for (int i = 0; i < 3; i++) { + List nodeReadings = getYBCPUUtilizationAllNodes(bench); + LOG.info("YB CPU Reading {}: {}", i+1, nodeReadings); + allNodeReadings.add(nodeReadings); + Thread.sleep(interval_gap * 1000); + } + + // For each node, find the max of its 3 readings + int numNodes = allNodeReadings.get(0).size(); + List perNodeValues = new ArrayList<>(); + for (int nodeIdx = 0; nodeIdx < numNodes; nodeIdx++) { + double minPerNode = Math.min(allNodeReadings.get(0).get(nodeIdx), + Math.min(allNodeReadings.get(1).get(nodeIdx), + allNodeReadings.get(2).get(nodeIdx))); + perNodeValues.add(minPerNode); + LOG.info("YB Node {} min CPU: {}", nodeIdx+1, minPerNode); + } + avgMaxCPU = perNodeValues.stream().mapToDouble(Double::doubleValue).max().orElse(0.0); + LOG.info("YB Node max CPU utilizations: {}", avgMaxCPU); + } else { + // RDS PostgreSQL monitoring - single instance + List rdsReadings = new ArrayList<>(); + + // Sleep for 1 minute so that RDS CPU utilization is updated + Thread.sleep(60 * 1000); + + for (int i = 0; i < 3; i++) { + double cpuReading = getRDSCPUUtilization(rdsInstanceIdentifier, awsRegion); + rdsReadings.add(cpuReading); + LOG.info("RDS CPU Reading {}: {}%", i+1, cpuReading); + + // If first reading fails, warn about CloudWatch availability + if (i == 0 && cpuReading == 0.0) { + LOG.warn("CloudWatch monitoring appears unavailable. Consider running with fixed thread count or check network connectivity."); + } + + if (i < 2) { // Don't sleep after last iteration + Thread.sleep(interval_gap * 1000); + } + } + + // For RDS, we treat it as a single node + allNodeReadings.add(rdsReadings); + avgMaxCPU = rdsReadings.stream().mapToDouble(Double::doubleValue).max().orElse(0.0); + LOG.info("RDS max CPU utilization: {}%", avgMaxCPU); + } + + // Write to log file + StringBuilder logLine = new StringBuilder(); + logLine.append(threads); + + if (isYugabyteDatabase) { + // YugabyteDB - multiple readings from multiple nodes + for (int i = 0; i < 3; i++) { + logLine.append(","); + logLine.append(allNodeReadings.get(i).toString().replaceAll("[\\[\\] ]", "")); + } + logLine.append(","); + // Get maxPerNode for YugabyteDB + int numNodes = allNodeReadings.get(0).size(); + List perNodeValues = new ArrayList<>(); + for (int nodeIdx = 0; nodeIdx < numNodes; nodeIdx++) { + double minPerNode = Math.min(allNodeReadings.get(0).get(nodeIdx), + Math.min(allNodeReadings.get(1).get(nodeIdx), + allNodeReadings.get(2).get(nodeIdx))); + perNodeValues.add(minPerNode); + } + for (int i = 0; i < perNodeValues.size(); i++) { + logLine.append(perNodeValues.get(i)); + if (i < perNodeValues.size() - 1) logLine.append(","); + } + logLine.append(",").append(avgMaxCPU).append("\n"); + + // Add to JSON results + Map entry = new LinkedHashMap<>(); + entry.put("threads", threads); + entry.put("readings", allNodeReadings); + entry.put("min_per_node", perNodeValues); + entry.put("max_cpu", avgMaxCPU); + jsonResults.add(entry); + } else { + // RDS - single instance readings + List rdsReadings = allNodeReadings.get(0); + for (int i = 0; i < 3; i++) { + logLine.append(",").append(rdsReadings.get(i)); + } + logLine.append(",").append(avgMaxCPU).append(",").append(avgMaxCPU).append("\n"); + + // Add to JSON results + Map entry = new LinkedHashMap<>(); + entry.put("threads", threads); + entry.put("readings", rdsReadings); + entry.put("max_cpu", avgMaxCPU); + jsonResults.add(entry); + } + + // Throughput will be captured after workloadThread.join() from iterationResults + + Files.write(Paths.get(logFile), logLine.toString().getBytes(), java.nio.file.StandardOpenOption.APPEND); + + workloadThread.join(); + threadCpuMap.put(threads, avgMaxCPU); + + double iterationThroughput = 0.0; + if (iterationResults[0] != null) { + iterationThroughput = iterationResults[0].requestsPerSecondGoodput(); + threadThroughputMap.put(threads, iterationThroughput); + LOG.info("Iteration throughput (goodput) for {} threads: {} req/s", threads, String.format("%.2f", iterationThroughput)); + if (!jsonResults.isEmpty()) { + jsonResults.get(jsonResults.size() - 1).put("throughput", iterationThroughput); + } + } + + if (avgMaxCPU >= minTargetCPU) { + optimalThreads = threads; + LOG.info("Found optimal threads: {} with MaxCPU: {}", optimalThreads, avgMaxCPU); + break; + } + else if (useThroughputThreshold) { + + int newThreads = threads + threadIncrement; + LOG.info("Throughput threshold mode: adding {} threads. New threads: {}", threadIncrement, newThreads); + + if (threadThroughputMap.containsKey(newThreads)) { + LOG.info("newThreads={} already tested. Breaking loop to avoid duplicate testing.", newThreads); + optimalThreads = bestThroughput > 0 ? bestThroughputThreads : threads; + break; + } + + if (bestThroughput > 0) { + double improvementOverBest = + ((iterationThroughput - bestThroughput) / bestThroughput) * 100.0; + + if (improvementOverBest >= scalingMinDeltaPercent) { + LOG.info("Throughput improved significantly over global best (best={} req/s @ {} threads -> current={} req/s @ {} threads, delta={}% >= min {}%). Resetting flat-step counter (was {}).", String.format("%.2f", bestThroughput), bestThroughputThreads, String.format("%.2f", iterationThroughput), threads, String.format("%.2f", improvementOverBest), scalingMinDeltaPercent, consecutiveFlatThroughputSteps); + bestThroughput = iterationThroughput; + bestThroughputThreads = threads; + consecutiveFlatThroughputSteps = 0; + } else { + if (iterationThroughput > bestThroughput) { + bestThroughput = iterationThroughput; + bestThroughputThreads = threads; + } + consecutiveFlatThroughputSteps++; + LOG.warn("Throughput did not improve significantly over global best (best={} req/s @ {} threads, current={} req/s @ {} threads, delta={}% vs min {}%). Consecutive non-improving steps: {}/{}.", String.format("%.2f", bestThroughput), bestThroughputThreads, String.format("%.2f", iterationThroughput), threads, String.format("%.2f", improvementOverBest), scalingMinDeltaPercent, consecutiveFlatThroughputSteps, flatMaxScalingSteps); + if (consecutiveFlatThroughputSteps >= flatMaxScalingSteps) { + flatThroughputDetected = true; + optimalThreads = bestThroughputThreads; + LOG.info("Throughput plateau confirmed after {} consecutive non-improving steps vs global best (min delta {}%). Stopping thread search; using {} threads (best throughput {} req/s). Current throughput {} req/s.", flatMaxScalingSteps, scalingMinDeltaPercent, optimalThreads, String.format("%.2f", bestThroughput), String.format("%.2f", iterationThroughput)); + break; + } + } + } else { + bestThroughput = iterationThroughput; + bestThroughputThreads = threads; + } + + optimalThreads = bestThroughputThreads; + threads = newThreads; + } + else { + int newThreads = 0; + if (avgMaxCPU <= targetCPU) optimalThreads = threads; + LOG.info("finding new threads for run...."); + if (isYugabyteDatabase) { + newThreads = threads + threadIncrement; + LOG.info("Adding {} threads to the current threads. New threads: {}", threadIncrement, newThreads); + }else{ + if(linearPGthread) { + newThreads = threads + threadIncrement; + LOG.info("Adding {} threads to the current threads (linearly). New threads: {}", threadIncrement, newThreads); + }else{ + newThreads = (int) Math.ceil((threads * targetCPU) / avgMaxCPU); + LOG.info("Calculating new threads using (threads * targetCPU) / avgMaxCPU formula. New threads: {}", newThreads); + } + } + if (threadCpuMap.containsKey(newThreads)) { + LOG.info("newThreads={} already tested. Breaking loop to avoid duplicate testing.", newThreads); + optimalThreads = newThreads; + break; + } + if (newThreads > threads && cpuAtPreviousScalingStep != null) { + double cpuDelta = avgMaxCPU - cpuAtPreviousScalingStep; + if (cpuDelta < scalingMinDeltaPercent) { + consecutiveFlatCpuSteps++; + if (consecutiveFlatCpuSteps == 1) { + flatRunStartThreads = threadsAtPreviousScalingStep; + } + LOG.warn( + "CPU utilization did not increase significantly when scaling threads " + + "({} threads -> {} threads, delta={}% vs min {}%). " + + "Consecutive flat steps: {}/{}. Candidate optimalThreads (last good before plateau): {}.", + threadsAtPreviousScalingStep, + threads, + String.format("%.2f", cpuDelta), + scalingMinDeltaPercent, + consecutiveFlatCpuSteps, + flatMaxScalingSteps, + flatRunStartThreads); + if (consecutiveFlatCpuSteps >= flatMaxScalingSteps) { + flatCpuDetected = true; + optimalThreads = flatRunStartThreads; + LOG.info( + "Flat CPU plateau confirmed after {} consecutive flat thread increases (min delta {}% points). " + + "Stopping thread search; rolling back and continuing run with {} threads (last good before plateau) " + + "and metadata flatCPU=true. Last max CPU {}%.", + flatMaxScalingSteps, + scalingMinDeltaPercent, + optimalThreads, + String.format("%.2f", avgMaxCPU)); + break; + } + } else if (consecutiveFlatCpuSteps > 0) { + LOG.info( + "CPU utilization recovered (delta={}% >= min {}%). Resetting consecutive flat-step counter " + + "(was {}, candidate optimalThreads was {}).", + String.format("%.2f", cpuDelta), + scalingMinDeltaPercent, + consecutiveFlatCpuSteps, + flatRunStartThreads); + consecutiveFlatCpuSteps = 0; + flatRunStartThreads = 0; + } + } + cpuAtPreviousScalingStep = avgMaxCPU; + threadsAtPreviousScalingStep = threads; + threads = newThreads; + } + + } catch (Exception e) { + LOG.error("Error during thread testing", e); + } + + } + // Write JSON file + try { + mapper.writerWithDefaultPrettyPrinter().writeValue(new File(jsonFile), jsonResults); + } catch (Exception e) { + LOG.error("Error writing optimal threads JSON log", e); + } + // Store the CPU reading for the selected optimal thread count into metadata. + if (!jsonResults.isEmpty()) { + try { + Map selectedEntry = jsonResults.get(jsonResults.size() - 1); + for (Map entry : jsonResults) { + Object entryThreads = entry.get("threads"); + if (entryThreads instanceof Number && ((Number) entryThreads).intValue() == optimalThreads) { + selectedEntry = entry; + break; + } + } + JSONObject metaDataJson = Worker.featurebenchAdditionalResults.getMetaDataJson(); + Object readings = selectedEntry.get("readings"); + List cpuReading; + if (readings instanceof List && !((List) readings).isEmpty() + && ((List) readings).get(0) instanceof List) { + @SuppressWarnings("unchecked") + List> ybReadings = (List>) readings; + cpuReading = ybReadings.get(ybReadings.size() - 1); + } else { + @SuppressWarnings("unchecked") + List flatReadings = (List) readings; + cpuReading = flatReadings; + } + metaDataJson.put("cpu_utilization", cpuReading); + double metadataAvgCpu; + if(isYugabyteDatabase) { + metadataAvgCpu = cpuReading.stream().mapToDouble(Double::doubleValue).average().orElse(0.0); + }else{ + metadataAvgCpu = ((Number) selectedEntry.get("max_cpu")).doubleValue(); + } + metaDataJson.put("avg_cpu", metadataAvgCpu); + metaDataJson.put("optimal_threads", optimalThreads); + metaDataJson.put("flatCPU", flatCpuDetected); + metaDataJson.put("flatThroughput", flatThroughputDetected); + metaDataJson.put("useThroughputThreshold", useThroughputThreshold); + if (selectedEntry.containsKey("throughput")) { + metaDataJson.put("throughput", ((Number) selectedEntry.get("throughput")).doubleValue()); + } + Worker.featurebenchAdditionalResults.setMetaDataJson(metaDataJson); + LOG.info("Stored in metadata: avg_cpu={}, optimal_threads={}, flatCPU={}, flatThroughput={}, useThroughputThreshold={}", + metadataAvgCpu, optimalThreads, flatCpuDetected, flatThroughputDetected, useThroughputThreshold); + } catch (Exception e) { + LOG.error("Error storing CPU utilization in metadata", e); + } + } + // Restore original phase + bench.getWorkloadConfiguration().getPhases().clear(); + bench.getWorkloadConfiguration().getPhases().add(createOriginalPhase); + return optimalThreads; + } + + + private static void checkCompletedTransaction(Results r){ + if(r.getSuccess().getSampleCount() == 0){ + LOG.error("ERROR: Zero completed transactions in Transaction Distribution Summary"); + System.exit(1); + } + } } diff --git a/src/main/java/com/oltpbenchmark/Results.java b/src/main/java/com/oltpbenchmark/Results.java index 32a8bf5df..eda7fbf4a 100644 --- a/src/main/java/com/oltpbenchmark/Results.java +++ b/src/main/java/com/oltpbenchmark/Results.java @@ -20,6 +20,7 @@ import com.oltpbenchmark.LatencyRecord.Sample; import com.oltpbenchmark.api.TransactionType; +import com.oltpbenchmark.benchmarks.featurebench.FeaturebenchAdditionalResults; import com.oltpbenchmark.util.Histogram; import java.util.HashMap; @@ -32,6 +33,8 @@ public final class Results { private final int measuredRequests; private final DistributionStatistics distributionStatistics; private final List latencySamples; + private long executionStartEpoch = -1; + private long executionEndEpoch = -1; private final Histogram unknown = new Histogram<>(false); private final Histogram success = new Histogram<>(true); private final Histogram abort = new Histogram<>(false); @@ -39,6 +42,8 @@ public final class Results { private final Histogram error = new Histogram<>(false); private final Histogram retryDifferent = new Histogram<>(false); private final Map> abortMessages = new HashMap<>(); + private final Histogram zeroRows = new Histogram<>(true); + private final FeaturebenchAdditionalResults featurebenchAdditionalResults = new FeaturebenchAdditionalResults(); public Results(long nanoseconds, int measuredRequests, DistributionStatistics distributionStatistics, final List latencySamples) { this.nanoseconds = nanoseconds; @@ -82,6 +87,12 @@ public Histogram getRetryDifferent() { return retryDifferent; } + public FeaturebenchAdditionalResults getFeaturebenchAdditionalResults() { + return featurebenchAdditionalResults; + } + + public Histogram getZeroRows() { return zeroRows; } + public Map> getAbortMessages() { return abortMessages; } @@ -106,6 +117,22 @@ public int getMeasuredRequests() { return measuredRequests; } + public long getExecutionStartEpoch() { + return executionStartEpoch; + } + + public void setExecutionStartEpoch(long executionStartEpoch) { + this.executionStartEpoch = executionStartEpoch; + } + + public long getExecutionEndEpoch() { + return executionEndEpoch; + } + + public void setExecutionEndEpoch(long executionEndEpoch) { + this.executionEndEpoch = executionEndEpoch; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/src/main/java/com/oltpbenchmark/ThreadBench.java b/src/main/java/com/oltpbenchmark/ThreadBench.java index 2c143a65d..0f6c99171 100644 --- a/src/main/java/com/oltpbenchmark/ThreadBench.java +++ b/src/main/java/com/oltpbenchmark/ThreadBench.java @@ -117,6 +117,8 @@ private Results runRateLimitedMultiPhase() { long warmupStart = System.nanoTime(); long warmup = warmupStart; long measureEnd = -1; + long executionStartEpoch = -1; + long executionEndEpoch = -1; // used to determine the longest sleep interval int lowestRate = Integer.MAX_VALUE; @@ -228,6 +230,7 @@ private Results runRateLimitedMultiPhase() { lastEntry = true; testState.startCoolDown(); measureEnd = now; + executionEndEpoch = System.currentTimeMillis(); LOG.info("{} :: Waiting for all terminals to finish ..", StringUtil.bold("TERMINATE")); } else if (phase != null) { // Reset serial execution parameters. @@ -277,6 +280,7 @@ private Results runRateLimitedMultiPhase() { interruptWorkers(); } start = now; + executionStartEpoch = System.currentTimeMillis(); LOG.info("{} :: Warmup complete, starting measurements.", StringUtil.bold("MEASURE")); // measureEnd = measureStart + measureSeconds * 1000000000L; @@ -298,22 +302,41 @@ private Results runRateLimitedMultiPhase() { int requests = finalizeWorkers(this.workerThreads); // Combine all the latencies together in the most disgusting way - // possible: sorting! - for (Worker w : workers) { - for (LatencyRecord.Sample sample : w.getLatencyRecords()) { - samples.add(sample); + // possible: sorting! (Skip if data collection is disabled for optimal thread finding) + boolean skipDataCollection = !workConfs.isEmpty() && workConfs.get(0).getIsOptimalThreadsWorkload(); + if (!skipDataCollection) { + for (Worker w : workers) { + for (LatencyRecord.Sample sample : w.getLatencyRecords()) { + samples.add(sample); + } } + Collections.sort(samples); + } else { + LOG.info("Skipping latency data collection for optimal thread finding workload"); } - Collections.sort(samples); // Compute stats on all the latencies - int[] latencies = new int[samples.size()]; - for (int i = 0; i < samples.size(); ++i) { - latencies[i] = samples.get(i).getLatencyMicrosecond(); + int[] latencies; + DistributionStatistics stats; + if (samples.isEmpty()) { + // Create empty stats when data collection is skipped + latencies = new int[0]; + stats = DistributionStatistics.computeStatistics(latencies); + } else { + latencies = new int[samples.size()]; + for (int i = 0; i < samples.size(); ++i) { + latencies[i] = samples.get(i).getLatencyMicrosecond(); + } + stats = DistributionStatistics.computeStatistics(latencies); } - DistributionStatistics stats = DistributionStatistics.computeStatistics(latencies); Results results = new Results(measureEnd - start, requests, stats, samples); + results.setExecutionStartEpoch(executionStartEpoch); + // If the measure phase end was never reached (e.g. early exit), fall back to "now". + if (executionEndEpoch < 0) { + executionEndEpoch = System.currentTimeMillis(); + } + results.setExecutionEndEpoch(executionEndEpoch); // Compute transaction histogram Set txnTypes = new HashSet<>(); @@ -328,6 +351,7 @@ private Results runRateLimitedMultiPhase() { results.getAbort().putAll(txnTypes, 0); results.getError().putAll(txnTypes, 0); results.getRetryDifferent().putAll(txnTypes, 0); + results.getZeroRows().putAll(txnTypes, 0); for (Worker w : workers) { results.getUnknown().putHistogram(w.getTransactionUnknownHistogram()); @@ -336,6 +360,9 @@ private Results runRateLimitedMultiPhase() { results.getAbort().putHistogram(w.getTransactionAbortHistogram()); results.getError().putHistogram(w.getTransactionErrorHistogram()); results.getRetryDifferent().putHistogram(w.getTransactionRetryDifferentHistogram()); + results.getZeroRows().putHistogram(w.getTransactionZeroRowsHistogram()); + results.getFeaturebenchAdditionalResults().setJsonResultsList(w.featurebenchAdditionalResults.getJsonResultsList()); + results.getFeaturebenchAdditionalResults().setMetaDataJson(w.featurebenchAdditionalResults.getMetaDataJson()); } return (results); @@ -500,7 +527,8 @@ public void run() { for (Thread t : workerThreads) { m.put(t.getName(), t.isAlive()); } - LOG.info("Worker Thread Status:\n{}", StringUtil.formatMaps(m)); + // Just for demo purpose +// LOG.info("Worker Thread Status:\n{}", StringUtil.formatMaps(m)); } } } diff --git a/src/main/java/com/oltpbenchmark/WorkloadConfiguration.java b/src/main/java/com/oltpbenchmark/WorkloadConfiguration.java index fb76076f0..64b58670b 100644 --- a/src/main/java/com/oltpbenchmark/WorkloadConfiguration.java +++ b/src/main/java/com/oltpbenchmark/WorkloadConfiguration.java @@ -49,6 +49,10 @@ public class WorkloadConfiguration { private int isolationMode = Connection.TRANSACTION_SERIALIZABLE; private String dataDir = null; private String ddlPath = null; + private String configFilePath = null; + + // Variable to store is an test to find optimal threads + private boolean isOptimalThreadsWorkload = false; /** * If true, establish a new connection for each transaction, otherwise use one persistent connection per client @@ -124,6 +128,22 @@ public void setMaxRetries(int maxRetries) { this.maxRetries = maxRetries; } + public String getConfigFilePath() { + return configFilePath; + } + + public void setConfigFilePath(String configFilePath) { + this.configFilePath = configFilePath; + } + + public boolean getIsOptimalThreadsWorkload() { + return isOptimalThreadsWorkload; + } + + public void setIsOptimalThreadsWorkload(boolean isOptimalThreadsWorkload) { + this.isOptimalThreadsWorkload = isOptimalThreadsWorkload; + } + /** * @return @see newConnectionPerTxn member docs for behavior. */ @@ -291,6 +311,8 @@ public int getIsolationMode() { return isolationMode; } + public void clearPhase(){ this.phases.clear(); } + public void setIsolationMode(String mode) { switch (mode) { case "TRANSACTION_SERIALIZABLE": diff --git a/src/main/java/com/oltpbenchmark/WorkloadState.java b/src/main/java/com/oltpbenchmark/WorkloadState.java index de12ec8ce..ca142690c 100644 --- a/src/main/java/com/oltpbenchmark/WorkloadState.java +++ b/src/main/java/com/oltpbenchmark/WorkloadState.java @@ -262,4 +262,12 @@ public long getTestStartNs() { return benchmarkState.getTestStartNs(); } + public long getMeasurementStartNs() { + return benchmarkState.getMeasurementStartNs(); + } + + public BenchmarkState getBenchmarkState() { + return benchmarkState; + } + } diff --git a/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java b/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java index ddd0a6cc0..5c4762d71 100644 --- a/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java +++ b/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java @@ -34,6 +34,7 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.sql.Statement; import java.util.*; /** @@ -98,6 +99,10 @@ public final Connection makeConnection() throws SQLException { * @return * @throws IOException */ + protected List> makeWorkersImpl(int workcount) throws IOException { + return null; + } + protected abstract List> makeWorkersImpl() throws IOException; /** @@ -185,6 +190,10 @@ public String getDatabaseDDLPath(DatabaseType db_type) { } + public final List> makeWorkers(int workcount) throws IOException { + return (this.makeWorkersImpl(workcount)); + } + public final List> makeWorkers() throws IOException { return (this.makeWorkersImpl()); } @@ -213,6 +222,30 @@ public final void createDatabase() throws SQLException, IOException { } } + /** + * Create the benchmark database for "featurebench" using YAML DDls + * if provided in the create Phase of YAML. + * */ + + public final void createFromYaml(WorkloadConfiguration workConf,Connection conn) + { + long createStart = System.currentTimeMillis(); + LOG.info("Using YAML for create phase"); + List createDDLs = workConf.getXmlConfig().getList(String.class, "microbenchmark/properties/create"); + try { + Statement stmtObj = conn.createStatement(); + for (String ddl : createDDLs) { + stmtObj.execute(ddl); + } + stmtObj.close(); + } catch (Exception ex) { + ex.printStackTrace(); + throw new RuntimeException("Error Occurred in Create Phase"); + } + long createEnd = System.currentTimeMillis(); + LOG.info("Elapsed time in create phase: {} milliseconds", createEnd - createStart); + } + /** * Create the Benchmark Database * This is the main method used to create all the database @@ -222,16 +255,21 @@ public final void createDatabase(DatabaseType dbType, Connection conn) throws SQ ScriptRunner runner = new ScriptRunner(conn, true, true); - if (workConf.getDDLPath() != null) { - String ddlPath = workConf.getDDLPath(); - LOG.warn("Overriding default DDL script path"); - LOG.debug("Executing script [{}] for database type [{}]", ddlPath, dbType); - runner.runExternalScript(ddlPath); - } else { - String ddlPath = this.getDatabaseDDLPath(dbType); - LOG.debug("Executing script [{}] for database type [{}]", ddlPath, dbType); - runner.runScript(ddlPath); - } + if (workConf.getDDLPath() != null) { + String ddlPath = workConf.getDDLPath(); + LOG.warn("Overriding default DDL script path"); + LOG.debug("Executing script [{}] for database type [{}]", ddlPath, dbType); + runner.runExternalScript(ddlPath); + } else if (workConf.getBenchmarkName().equalsIgnoreCase("featurebench") + && workConf.getXmlConfig().containsKey("microbenchmark/properties/create")) { + + createFromYaml(workConf,conn); + + } else { + String ddlPath = this.getDatabaseDDLPath(dbType); + LOG.debug("Executing script [{}] for database type [{}]", ddlPath, dbType); + runner.runScript(ddlPath); + } } @@ -336,6 +374,29 @@ public final TransactionType initTransactionType(String procName, int id, long p return new TransactionType(procClass, id, false, preExecutionWait, postExecutionWait); } + /** + * Initialize a TransactionType handle for the get procedure name and id + * This should only be invoked a start-up time + * + * @param procName + * @param id + * @return + */ + @SuppressWarnings("unchecked") + public final TransactionType initTransactionType(String procName, int id, long preExecutionWait, + long postExecutionWait, String transactionName) { + if (id == TransactionType.INVALID_ID) { + throw new RuntimeException(String.format("Procedure %s.%s cannot use the reserved id '%d' for %s", getBenchmarkName(), procName, id, TransactionType.INVALID.getClass().getSimpleName())); + } + + Package pkg = this.getProcedurePackageImpl(); + + String fullName = pkg.getName() + "." + procName; + Class procClass = (Class) ClassUtil.getClass(fullName); + + return new TransactionType(procClass, id, false, preExecutionWait, postExecutionWait, transactionName); + } + public final WorkloadConfiguration getWorkloadConfiguration() { return (this.workConf); } diff --git a/src/main/java/com/oltpbenchmark/api/LoaderThread.java b/src/main/java/com/oltpbenchmark/api/LoaderThread.java index 50f4ba9c3..d221d52c6 100644 --- a/src/main/java/com/oltpbenchmark/api/LoaderThread.java +++ b/src/main/java/com/oltpbenchmark/api/LoaderThread.java @@ -20,6 +20,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import java.sql.SQLException; @@ -48,6 +49,9 @@ public final void run() { String msg = String.format("Unexpected error when loading %s database", benchmarkModule.getBenchmarkName().toUpperCase()); LOG.error(msg, next_ex); throw new RuntimeException(ex); + } catch (ClassNotFoundException | InvocationTargetException | NoSuchMethodException | InstantiationException | + IllegalAccessException e) { + throw new RuntimeException(e); } finally { afterLoad(); } @@ -59,7 +63,7 @@ public final void run() { * @param conn * @throws SQLException */ - public abstract void load(Connection conn) throws SQLException; + public abstract void load(Connection conn) throws SQLException, ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException; public void beforeLoad() { // useful for implementing waits for countdown latches, this ensures we open the connection right before its used to avoid stale connections diff --git a/src/main/java/com/oltpbenchmark/api/Procedure.java b/src/main/java/com/oltpbenchmark/api/Procedure.java index b40f11233..fced0977a 100644 --- a/src/main/java/com/oltpbenchmark/api/Procedure.java +++ b/src/main/java/com/oltpbenchmark/api/Procedure.java @@ -109,7 +109,7 @@ public final PreparedStatement getPreparedStatementReturnKeys(Connection conn, S // HACK: If the target system is Postgres, wrap the PreparedStatement in a special // one that fakes the getGeneratedKeys(). - if (is != null && (this.dbType == DatabaseType.POSTGRES || this.dbType == DatabaseType.COCKROACHDB)) { + if (is != null && (this.dbType == DatabaseType.POSTGRES || this.dbType == DatabaseType.COCKROACHDB || this.dbType==DatabaseType.YUGABYTE)) { pStmt = new AutoIncrementPreparedStatement(this.dbType, conn.prepareStatement(stmt.getSQL())); } // Everyone else can use the regular getGeneratedKeys() method diff --git a/src/main/java/com/oltpbenchmark/api/TransactionType.java b/src/main/java/com/oltpbenchmark/api/TransactionType.java index 4086cd5b8..0d9f763cf 100644 --- a/src/main/java/com/oltpbenchmark/api/TransactionType.java +++ b/src/main/java/com/oltpbenchmark/api/TransactionType.java @@ -33,7 +33,7 @@ public static class Invalid extends Procedure { private final boolean supplemental; private final long preExecutionWait; private final long postExecutionWait; - + private String transactionName; protected TransactionType(Class procedureClass, int id, boolean supplemental, long preExecutionWait, long postExecutionWait) { this.procedureClass = procedureClass; this.id = id; @@ -42,6 +42,16 @@ protected TransactionType(Class procedureClass, int id, boo this.postExecutionWait = postExecutionWait; } + protected TransactionType(Class procedureClass, int id, boolean supplemental, + long preExecutionWait, long postExecutionWait, String transactionName) { + this.procedureClass = procedureClass; + this.id = id; + this.supplemental = supplemental; + this.preExecutionWait = preExecutionWait; + this.postExecutionWait = postExecutionWait; + this.transactionName = transactionName; + } + public Class getProcedureClass() { return (this.procedureClass); } @@ -93,4 +103,8 @@ public String toString() { return String.format("%s/%02d", this.procedureClass.getName(), this.id); } + public String getTransactionName(){ + return this.transactionName; + } + } diff --git a/src/main/java/com/oltpbenchmark/api/TransactionTypes.java b/src/main/java/com/oltpbenchmark/api/TransactionTypes.java index 0059b08e7..2f9dc0aa4 100644 --- a/src/main/java/com/oltpbenchmark/api/TransactionTypes.java +++ b/src/main/java/com/oltpbenchmark/api/TransactionTypes.java @@ -30,8 +30,12 @@ public class TransactionTypes implements Collection { public TransactionTypes(List transactiontypes) { transactiontypes.sort(TransactionType::compareTo); for (TransactionType tt : transactiontypes) { + String key = tt.getName().toUpperCase(); - this.types.put(key, tt); + if(key.equalsIgnoreCase("featurebench")) + this.types.put(key + tt.getId(), tt); + else + this.types.put(key, tt); } } diff --git a/src/main/java/com/oltpbenchmark/api/Worker.java b/src/main/java/com/oltpbenchmark/api/Worker.java index e9cff3119..6a1432324 100644 --- a/src/main/java/com/oltpbenchmark/api/Worker.java +++ b/src/main/java/com/oltpbenchmark/api/Worker.java @@ -19,6 +19,7 @@ import com.oltpbenchmark.*; import com.oltpbenchmark.api.Procedure.UserAbortException; +import com.oltpbenchmark.benchmarks.featurebench.FeaturebenchAdditionalResults; import com.oltpbenchmark.types.DatabaseType; import com.oltpbenchmark.types.State; import com.oltpbenchmark.types.TransactionStatus; @@ -40,31 +41,29 @@ public abstract class Worker implements Runnable { private static final Logger LOG = LoggerFactory.getLogger(Worker.class); private static final Logger ABORT_LOG = LoggerFactory.getLogger("com.oltpbenchmark.api.ABORT_LOG"); - - private WorkloadState workloadState; - private LatencyRecord latencies; - private final Statement currStatement; - - // Interval requests used by the monitor - private final AtomicInteger intervalRequests = new AtomicInteger(0); - - private final int id; - private final T benchmark; - protected Connection conn = null; protected final WorkloadConfiguration configuration; protected final TransactionTypes transactionTypes; protected final Map procedures = new HashMap<>(); protected final Map name_procedures = new HashMap<>(); protected final Map, Procedure> class_procedures = new HashMap<>(); - + private final Statement currStatement; + // Interval requests used by the monitor + private final AtomicInteger intervalRequests = new AtomicInteger(0); + private final int id; + private final T benchmark; private final Histogram txnUnknown = new Histogram<>(); private final Histogram txnSuccess = new Histogram<>(); private final Histogram txnAbort = new Histogram<>(); private final Histogram txnRetry = new Histogram<>(); private final Histogram txnErrors = new Histogram<>(); + private final Histogram txnZeroRows = new Histogram<>(); private final Histogram txtRetryDifferent = new Histogram<>(); - + protected Connection conn = null; + private WorkloadState workloadState; + boolean isFeaturebenchWorkload = false; + private LatencyRecord latencies; private boolean seenDone = false; + public static final FeaturebenchAdditionalResults featurebenchAdditionalResults = new FeaturebenchAdditionalResults(); public Worker(T benchmark, int id) { this.id = id; @@ -73,11 +72,16 @@ public Worker(T benchmark, int id) { this.workloadState = this.configuration.getWorkloadState(); this.currStatement = null; this.transactionTypes = this.configuration.getTransTypes(); - + boolean autoCommitVal = false; + if (this.benchmark.getBenchmarkName().equalsIgnoreCase("featurebench") && + this.benchmark.getWorkloadConfiguration().getXmlConfig().containsKey("microbenchmark/properties/setAutoCommit")) { + autoCommitVal = this.benchmark.getWorkloadConfiguration().getXmlConfig().getBoolean("microbenchmark/properties/setAutoCommit"); + this.isFeaturebenchWorkload = true; + } if (!this.configuration.getNewConnectionPerTxn()) { try { this.conn = this.benchmark.makeConnection(); - this.conn.setAutoCommit(false); + this.conn.setAutoCommit(autoCommitVal); this.conn.setTransactionIsolation(this.configuration.getIsolationMode()); } catch (SQLException ex) { throw new RuntimeException("Failed to connect to database", ex); @@ -170,6 +174,7 @@ public final Histogram getTransactionRetryDifferentHistogram() return (this.txtRetryDifferent); } + public final Histogram getTransactionZeroRowsHistogram() { return (this.txnZeroRows); } /** * Stop executing the current statement. */ @@ -304,7 +309,10 @@ public final void run() { break; } if (preState == MEASURE && postPhase.getId() == prePhase.getId()) { - latencies.addLatency(transactionType.getId(), start, end, this.id, prePhase.getId()); + // Skip latency recording for optimal thread finding workloads to save memory + if (!configuration.getIsOptimalThreadsWorkload()) { + latencies.addLatency(transactionType.getId(), start, end, this.id, prePhase.getId()); + } intervalRequests.incrementAndGet(); } if (prePhase.isLatencyRun()) { @@ -340,11 +348,13 @@ public final void run() { workloadState.finishedWork(); } + LOG.debug("worker calling teardown"); tearDown(); } + private TransactionType getTransactionType(SubmittedProcedure pieceOfWork, Phase phase, State state, WorkloadState workloadState) { TransactionType type = TransactionType.INVALID; @@ -380,7 +390,7 @@ private TransactionType getTransactionType(SubmittedProcedure pieceOfWork, Phase * implementing worker should return the TransactionType handle that was * executed. * - * @param databaseType TODO + * @param databaseType TODO * @param transactionType TODO */ protected final void doWork(DatabaseType databaseType, TransactionType transactionType) { @@ -389,14 +399,20 @@ protected final void doWork(DatabaseType databaseType, TransactionType transacti int retryCount = 0; int maxRetryCount = configuration.getMaxRetries(); + boolean autoCommitVal = false; + if (this.benchmark.getBenchmarkName().equalsIgnoreCase("featurebench") && + this.benchmark.getWorkloadConfiguration().getXmlConfig().containsKey("microbenchmark/properties/setAutoCommit")) { + autoCommitVal = this.benchmark.getWorkloadConfiguration().getXmlConfig().getBoolean("microbenchmark/properties/setAutoCommit"); + } + while (retryCount < maxRetryCount && this.workloadState.getGlobalState() != State.DONE) { TransactionStatus status = TransactionStatus.UNKNOWN; - if (this.conn == null) { + if (this.conn == null || this.conn.isClosed()) { try { this.conn = this.benchmark.makeConnection(); - this.conn.setAutoCommit(false); + this.conn.setAutoCommit(autoCommitVal); this.conn.setTransactionIsolation(this.configuration.getIsolationMode()); } catch (SQLException ex) { if (LOG.isDebugEnabled()) { @@ -423,12 +439,14 @@ protected final void doWork(DatabaseType databaseType, TransactionType transacti LOG.debug(String.format("%s %s committing...", this, transactionType)); } - conn.commit(); + if (!autoCommitVal) + conn.commit(); break; } catch (UserAbortException ex) { - conn.rollback(); + if (!this.conn.isClosed() && !conn.getAutoCommit()) + conn.rollback(); ABORT_LOG.debug(String.format("%s Aborted", transactionType), ex); @@ -437,7 +455,8 @@ protected final void doWork(DatabaseType databaseType, TransactionType transacti break; } catch (SQLException ex) { - conn.rollback(); + if (!this.conn.isClosed() && !conn.getAutoCommit()) + conn.rollback(); if (isRetryable(ex)) { LOG.debug(String.format("Retryable SQLException occurred during [%s]... current retry attempt [%d], max retry attempts [%d], sql state [%s], error code [%d].", transactionType, retryCount, maxRetryCount, ex.getSQLState(), ex.getErrorCode()), ex); @@ -446,7 +465,7 @@ protected final void doWork(DatabaseType databaseType, TransactionType transacti retryCount++; } else { - LOG.warn(String.format("SQLException occurred during [%s] and will not be retried... sql state [%s], error code [%d].", transactionType, ex.getSQLState(), ex.getErrorCode()), ex); + LOG.debug(String.format("SQLException occurred during [%s] and will not be retried... sql state [%s], error code [%d], Message: %s.", transactionType, ex.getSQLState(), ex.getErrorCode(), ex.getMessage())); status = TransactionStatus.ERROR; @@ -454,7 +473,7 @@ protected final void doWork(DatabaseType databaseType, TransactionType transacti } } finally { - if (this.configuration.getNewConnectionPerTxn() && this.conn != null) { + if (this.configuration.getNewConnectionPerTxn() && this.conn != null && !this.conn.isClosed()) { try { this.conn.close(); this.conn = null; @@ -470,6 +489,7 @@ protected final void doWork(DatabaseType databaseType, TransactionType transacti case RETRY -> this.txnRetry.put(transactionType); case RETRY_DIFFERENT -> this.txtRetryDifferent.put(transactionType); case ERROR -> this.txnErrors.put(transactionType); + case ZERO_ROWS -> this.txnZeroRows.put(transactionType); } } @@ -503,6 +523,9 @@ private boolean isRetryable(SQLException ex) { } else if (errorCode == 1205 && sqlState.equals("41000")) { // MySQL ER_LOCK_WAIT_TIMEOUT return true; + } else if(errorCode > 0 && !sqlState.isEmpty()) { + // Added by Yugabyte to retry on all errors + return true; } // ------------------ diff --git a/src/main/java/com/oltpbenchmark/api/collectors/DBParameterCollectorGen.java b/src/main/java/com/oltpbenchmark/api/collectors/DBParameterCollectorGen.java index e5be29d05..981f6659e 100644 --- a/src/main/java/com/oltpbenchmark/api/collectors/DBParameterCollectorGen.java +++ b/src/main/java/com/oltpbenchmark/api/collectors/DBParameterCollectorGen.java @@ -27,6 +27,7 @@ public static DBParameterCollector getCollector(DatabaseType dbType, String dbUr case MARIADB: return new MySQLCollector(dbUrl, username, password); case POSTGRES: + case YUGABYTE: return new PostgresCollector(dbUrl, username, password); case COCKROACHDB: return new CockroachCollector(dbUrl, username, password); diff --git a/src/main/java/com/oltpbenchmark/api/collectors/YuagbyteCollector.java b/src/main/java/com/oltpbenchmark/api/collectors/YuagbyteCollector.java new file mode 100644 index 000000000..6ffdb2f2c --- /dev/null +++ b/src/main/java/com/oltpbenchmark/api/collectors/YuagbyteCollector.java @@ -0,0 +1,25 @@ +package com.oltpbenchmark.api.collectors; + +import java.sql.*; + +public class YuagbyteCollector extends DBCollector { + + private static final String VERSION_SQL = "SELECT version();"; + + public YuagbyteCollector(String oriDBUrl, String username, String password){ + try (Connection conn = DriverManager.getConnection(oriDBUrl, username, password)) { + try (Statement s = conn.createStatement()) { + + // Collect DBMS version + try (ResultSet out = s.executeQuery(VERSION_SQL)) { + if (out.next()) { + this.version = out.getString(1); + } + } + + } + } catch (SQLException e) { + LOG.error("Error while collecting DB parameters: {}", e.getMessage()); + } + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java index 2ceb6a659..bf05bf501 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java @@ -751,7 +751,7 @@ protected boolean executeNewItem(Connection conn, NewItem proc) throws SQLExcept gag_ids, gav_ids, images); } catch (DuplicateItemIdException ex) { profile.seller_item_cnt.set(sellerId, ex.getItemCount()); - LOG.warn("a duplicate item existed; i believe this error should be handled differently.: " + ex.getMessage()); + LOG.debug("a duplicate item existed; i believe this error should be handled differently.: " + ex.getMessage()); throw ex; } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/dataloader/Column.java b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/Column.java new file mode 100644 index 000000000..cd0fa5be9 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/Column.java @@ -0,0 +1,79 @@ +package com.oltpbenchmark.benchmarks.dataloader; + +public class Column { + private String columnName; + private String dataType; + private String baseDataType; + private Integer characterMaximumLength; + private Boolean isIdentity; + private Boolean nullable; + + // Getters and Setters + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public Integer getCharacterMaximumLength() { + return characterMaximumLength; + } + + public void setCharacterMaximumLength(Integer characterMaximumLength) { + this.characterMaximumLength = characterMaximumLength; + } + + public String getBaseDataType() { + return baseDataType; + } + + public void setBaseDataType(String baseDataType) { + this.baseDataType = baseDataType; + } + + public Boolean getIdentity() { + return isIdentity; + } + + public void setIdentity(Boolean identity) { + isIdentity = identity; + } + + public Boolean getIsIdentity() { + return isIdentity; + } + + public void setIsIdentity(Boolean isIdentity) { + this.isIdentity = isIdentity; + } + + public Boolean getNullable() { + return nullable; + } + + public void setNullable(Boolean nullable) { + this.nullable = nullable; + } + + @Override + public String toString() { + return "Column{" + + "columnName='" + columnName + '\'' + + ", dataType='" + dataType + '\'' + + ", baseDataType='" + baseDataType + '\'' + + ", characterMaximumLength=" + characterMaximumLength + + ", isIdentity=" + isIdentity + + ", nullable=" + nullable + + '}'; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/dataloader/DataGenerator.java b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/DataGenerator.java new file mode 100644 index 000000000..de4844cf0 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/DataGenerator.java @@ -0,0 +1,93 @@ +package com.oltpbenchmark.benchmarks.dataloader; + +import com.oltpbenchmark.WorkloadConfiguration; +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.api.Loader; +import com.oltpbenchmark.api.Worker; +import com.oltpbenchmark.benchmarks.featurebench.FeatureBenchLoader; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.*; + +public class DataGenerator extends BenchmarkModule { + /** + * Constructor! + * + * @param workConf + */ + public DataGenerator(WorkloadConfiguration workConf) { + super(workConf); + } + + @Override + protected List> makeWorkersImpl() throws IOException { + return null; + } + + @Override + protected Loader makeLoaderImpl() { + // load properties file + + return new DataGeneratorLoader(this, getProperties("datatype-mapping.properties"), + getProperties("pk-mapping.properties"), + getProperties("array-mapping.properties"), getFkProperties()); + } + + @Override + protected Package getProcedurePackageImpl() { + return null; + } + + public Map getProperties(String propertiesType) { + Properties properties = new Properties(); + Map propertyMap = new LinkedHashMap<>(); + final String path = "/benchmarks/" + getBenchmarkName() + "/" + propertiesType; + + try (InputStream input = this.getClass().getResourceAsStream(path)) { + properties.load(input); + for (String key : properties.stringPropertyNames()) { + String value = properties.getProperty(key); + String[] parts = value.split(":"); + String className = parts[0]; + int numParams = Integer.parseInt(parts[1]); + List params = new ArrayList<>(); + if (numParams > 0) { + params.addAll(Arrays.asList(parts[2].split(","))); + } + + PropertyMapping property = new PropertyMapping(className, numParams, params); + propertyMap.put(key, property); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return propertyMap; + } + + public Map getFkProperties() { + Properties properties = new Properties(); + Map propertyMap = new LinkedHashMap<>(); + final String path = "/benchmarks/" + getBenchmarkName() + "/fk-mapping.properties"; + + try (InputStream input = this.getClass().getResourceAsStream(path)) { + properties.load(input); + for (String key : properties.stringPropertyNames()) { + String value = properties.getProperty(key); + String[] parts = value.split(":"); + String className = parts[0]; + String dataType = parts[1]; + + FkPropertyMapping property = new FkPropertyMapping(className, dataType); + propertyMap.put(key, property); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return propertyMap; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/dataloader/DataGeneratorLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/DataGeneratorLoader.java new file mode 100644 index 000000000..20d003f32 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/DataGeneratorLoader.java @@ -0,0 +1,763 @@ +package com.oltpbenchmark.benchmarks.dataloader; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.oltpbenchmark.api.Loader; +import com.oltpbenchmark.api.LoaderThread; +import com.oltpbenchmark.util.JSONUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.introspector.BeanAccess; +import org.yaml.snakeyaml.introspector.Property; +import org.yaml.snakeyaml.introspector.PropertyUtils; +import org.yaml.snakeyaml.representer.Representer; +import org.yaml.snakeyaml.nodes.Tag; + + +import java.io.*; +import java.sql.*; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class DataGeneratorLoader extends Loader { + private static final Logger LOG = LoggerFactory.getLogger(DataGeneratorLoader.class); + + private final Map properties; + private final Map fkProperties; + private final Map arrayProperties; + private final Map pkProperties; + private int minLevel = Integer.MAX_VALUE; + + public DataGeneratorLoader(DataGenerator benchmark, Map properties, + Map pkProperties, Map arrayProperties, + Map fkProperties) { + super(benchmark); + this.properties = properties; + this.fkProperties = fkProperties; + this.pkProperties = pkProperties; + this.arrayProperties = arrayProperties; + } + + @Override + public List createLoaderThreads() throws SQLException { + Connection conn = benchmark.makeConnection(); + boolean genLoadOrderOnly = workConf.getXmlConfig().getBoolean("gen-db-load-order", false); + if (genLoadOrderOnly) { + Set processedTables = new HashSet<>(); + Map> graph = new HashMap<>(); + Set visited = new HashSet<>(); + StringBuilder loadOrder = new StringBuilder(); + Map> depth = new TreeMap<>(); + Map> levelAndTables = new LinkedHashMap<>(); + buildGraph(conn, processedTables, graph); + + List independentTables = new ArrayList<>(); + List allDbTables = getAllTables(conn); + for(String table: allDbTables) { + if (!processedTables.contains(table.toLowerCase())) { + independentTables.add(table); + } + } + + if (!graph.isEmpty()) { + String startTable = graph.keySet().iterator().next(); + levelAndTables.putAll(getOrderOfImport(startTable, loadOrder, graph, depth, visited)); + levelAndTables.get(0).addAll(independentTables); + } else { + levelAndTables.put(0, independentTables); + } + + int totalTables = 0; + for (Map.Entry> entry : levelAndTables.entrySet()) { + int level = entry.getKey(); + List tablesAtLevel = entry.getValue(); + totalTables += tablesAtLevel.size(); + System.out.println("Level " + level + ": " + String.join(", ", tablesAtLevel)); + } + + System.out.println("Total number of tables: " + totalTables); + try { + FileWriter writer = new FileWriter("load_order.json"); + writer.write(JSONUtil.format(JSONUtil.toJSONString(levelAndTables))); + writer.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } else { + String tableName = workConf.getXmlConfig().getString("tablename"); + int rows = workConf.getXmlConfig().getInt("rows"); + + // check if the table exists in the database and fetch the table schema + String schemaOfTable = getTableSchemaIfTableExists(tableName, conn); + // get the table schema + List columnDetails = getTableSchema(tableName, conn, schemaOfTable); + + // key primary key details + List primaryKeys = getPrimaryKeys(tableName, schemaOfTable, conn); + + // get all unique constraints from the indexes + List uniqueConstraintColumns = getUniqueConstrains(tableName, schemaOfTable, conn); + + // get all columns with respective user defined ENUM data type + Map> udColumns = getUserDefinedEnumDataTypes(tableName, schemaOfTable, conn); + + // get all foreign keys of the table + List foreignKeys = getForeignKeys(tableName, schemaOfTable, conn); + + int limit = Math.min(10000, rows); + List fkColNames = new ArrayList<>(); + + // if in foreign key, parent table is same as current table, don't treat it as foreign key. treat is as normal column + List fkToRemove = new ArrayList<>(); + foreignKeys.forEach(fk -> { + if (fk.getForeignTableName().equalsIgnoreCase(tableName)) { + fkToRemove.add(fk); + } else { + fkColNames.add(fk.getColumnName()); + } + }); + foreignKeys.removeAll(fkToRemove); + + // remove all fks from unique constraints + uniqueConstraintColumns.removeAll(fkColNames); + + // remove all fks from primary keys + List pkToRemove = new ArrayList<>(); + primaryKeys.forEach(pk -> { + if (fkColNames.contains(pk.getColumnName())) + pkToRemove.add(pk); + }); + primaryKeys.removeAll(pkToRemove); + + if (!foreignKeys.isEmpty()) { + // fetch the distinct values from parent table. This could take some time + getDistinctValuesFromParentTable(conn, foreignKeys, limit, schemaOfTable); + } + // create mapping of utility function to the columns in the table + Map columnToUtilsMapping = + utilsMapping(columnDetails, primaryKeys, foreignKeys, limit, rows, uniqueConstraintColumns, udColumns); + + // generate the mapping object which can be used to create the output yaml file + Root root = generateMappingObject(tableName, rows, columnToUtilsMapping, fkColNames, udColumns); + + // create output yaml file + writeToFile(tableName, rows, root); + LOG.info("Generated loader file: {}_loader.yaml", tableName); + } + + return new ArrayList<>(); + } + + public static String getTableSchemaIfTableExists(String tableName, Connection connection) throws SQLException { + String tableSchema = null; + ResultSet resultSet = null; + + try { + DatabaseMetaData metaData = connection.getMetaData(); + resultSet = metaData.getTables(null, null, tableName, new String[]{"TABLE"}); + if (resultSet.next()) { + tableSchema = resultSet.getString("TABLE_SCHEM"); + } else { + throw new RuntimeException(String.format("Table with name %s does not exist", tableName)); + } + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + + return tableSchema; + } + + public static List getTableSchema(String tableName, Connection conn, String tableSchema) { + List tableSchemaList = new ArrayList<>(); + String query = "SELECT c.column_name, c.data_type, CASE WHEN c.data_type = 'ARRAY' THEN (SELECT replace(t.typname, '_', '') FROM pg_type t JOIN pg_namespace ns ON t.typnamespace = ns.oid WHERE t.oid = (SELECT typarray FROM pg_type WHERE typname = replace(c.udt_name, '_', ''))) ELSE c.data_type END as base_data_type, c.character_maximum_length, c.is_identity, CASE WHEN c.is_nullable = 'YES' THEN TRUE END as nullable FROM INFORMATION_SCHEMA.COLUMNS c WHERE c.table_name = ? AND c.table_schema = ?"; + try (PreparedStatement pstmt = conn.prepareStatement(query)) { + pstmt.setString(1, tableName); + pstmt.setString(2, tableSchema); + ResultSet rs = pstmt.executeQuery(); + + while (rs.next()) { + Column column = new Column(); + column.setColumnName(rs.getString("column_name")); + // need to remove all spaces from datatype so that we can do string matching with properties + column.setDataType(rs.getString("data_type").replaceAll("\\s", "")); + column.setCharacterMaximumLength((Integer) rs.getObject("character_maximum_length")); + column.setIsIdentity("YES".equals(rs.getString("is_identity"))); + column.setBaseDataType(rs.getString("base_data_type")); + column.setNullable(rs.getBoolean("nullable")); + tableSchemaList.add(column); + } + } catch (SQLException e) { + e.printStackTrace(); + } + + return tableSchemaList; + } + + public static List getPrimaryKeys(String tableName, String tableSchema, Connection conn) { + List primaryKeyList = new ArrayList<>(); + String query = "SELECT c.column_name, c.data_type " + + "FROM information_schema.table_constraints tc " + + "JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name) " + + "JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema " + + "AND tc.table_name = c.table_name " + + "AND ccu.column_name = c.column_name " + + "WHERE constraint_type = 'PRIMARY KEY' " + + "AND tc.table_name = ? and tc.table_schema = ?"; + + try (PreparedStatement pstmt = conn.prepareStatement(query)) { + + pstmt.setString(1, tableName); + pstmt.setString(2, tableSchema); + ResultSet rs = pstmt.executeQuery(); + + while (rs.next()) { + PrimaryKey primaryKey = new PrimaryKey(); + primaryKey.setColumnName(rs.getString("column_name")); + // need to remove all spaces from datatype so that we can do string matching with properties + primaryKey.setDataType(rs.getString("data_type").replaceAll("\\s", "")); + primaryKeyList.add(primaryKey); + } + } catch (SQLException e) { + e.printStackTrace(); + } + + return primaryKeyList; + } + + public static List getUniqueConstrains(String tableName, String tableSchema, Connection conn) { + List uniques = new ArrayList<>(); + // Query to find unique indexes on 'store' table in 'public' schema + String query = "SELECT indexdef " + + "FROM pg_indexes " + + "WHERE indexdef ILIKE '%UNIQUE%' " + + "AND tablename = ? and schemaname = ?"; + + try (PreparedStatement pstmt = conn.prepareStatement(query)) { + + pstmt.setString(1, tableName); + pstmt.setString(2, tableSchema); + ResultSet rs = pstmt.executeQuery(); + + while (rs.next()) { + String indexDef = rs.getString("indexdef"); + List columns = extractColumnsFromIndexDef(indexDef); + + uniques.addAll(columns); + } + } catch (SQLException e) { + e.printStackTrace(); + } + + return uniques; + } + + public static Map> getUserDefinedEnumDataTypes(String tableName, String schemaName, Connection conn) { + String query = + "SELECT " + + " a.attname AS column_name, " + + " t.typname AS data_type " + + "FROM " + + " pg_attribute a " + + "JOIN " + + " pg_class c ON a.attrelid = c.oid " + + "JOIN " + + " pg_type t ON a.atttypid = t.oid " + + "JOIN " + + " pg_namespace n ON t.typnamespace = n.oid " + + "WHERE " + + " c.relname = ? AND " + + " n.nspname = ? AND " + + " (t.typtype = 'c' OR t.typtype = 'e' OR t.typtype = 'b') " + + "ORDER BY " + + " a.attnum;"; + + Map> columnDataTypes = new HashMap<>(); + + try (PreparedStatement preparedStatement = conn.prepareStatement(query)) { + preparedStatement.setString(1, tableName); + preparedStatement.setString(2, schemaName); + + try (ResultSet resultSet = preparedStatement.executeQuery()) { + while (resultSet.next()) { + String columnName = resultSet.getString("column_name"); + String dataType = resultSet.getString("data_type"); + List distinctEnumValues = getEnumValues(dataType, conn); + columnDataTypes.put(columnName, distinctEnumValues); + } + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return columnDataTypes; + } + + public static List getEnumValues(String typename, Connection conn) throws SQLException { + String query = + "SELECT e.enumlabel AS enum_value " + + "FROM pg_enum e " + + "JOIN pg_type t ON t.oid = e.enumtypid " + + "WHERE t.typname = ? " + + "ORDER BY e.enumsortorder"; + + List enumValues = new ArrayList<>(); + + try (PreparedStatement preparedStatement = conn.prepareStatement(query)) { + preparedStatement.setString(1, typename); + + try (ResultSet resultSet = preparedStatement.executeQuery()) { + while (resultSet.next()) { + enumValues.add(resultSet.getString("enum_value")); + } + } + } + + return enumValues; + } + + // Method to extract column name(s) from index definition + private static List extractColumnsFromIndexDef(String indexDef) { + // Example index definition: "CREATE UNIQUE INDEX idx_name ON tablename (column1, column2)" + // Extract column names from the parenthesis using regex + // Assuming the format is generally consistent, using regex to find column names in parentheses + String regex = "\\(([^)]+)\\)"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(indexDef); + List filteredColumns = new ArrayList<>(); + + if (matcher.find()) { + String columnList = matcher.group(1); + // Split by comma and trim to get individual column names + String[] columns = columnList.split("\\s*,\\s*"); + // Remove non-column words (e.g., HASH) by filtering out any non-alphabetic words + for (String column : columns) { + String[] splits = column.split(" "); + filteredColumns.add(splits[0]); + } + } + return filteredColumns; + } + + public static List getForeignKeys(String tableName, String tableSchema, Connection conn) { + List foreignKeyList = new ArrayList<>(); + String query = "SELECT " + + "kcu.table_schema AS schema_name, " + + "kcu.table_name AS table_name, " + + "kcu.column_name AS column_name, " + + "col.data_type AS column_data_type, " + + "ccu.table_schema AS foreign_table_schema, " + + "ccu.table_name AS foreign_table_name, " + + "ccu.column_name AS foreign_column_name " + + "FROM information_schema.table_constraints AS tc " + + "JOIN information_schema.key_column_usage AS kcu " + + "ON tc.constraint_name = kcu.constraint_name " + + "AND tc.table_schema = kcu.table_schema " + + "JOIN information_schema.constraint_column_usage AS ccu " + + "ON ccu.constraint_name = tc.constraint_name " + + "JOIN information_schema.columns AS col " + + "ON kcu.table_schema = col.table_schema " + + "AND kcu.table_name = col.table_name " + + "AND kcu.column_name = col.column_name " + + "WHERE tc.constraint_type = 'FOREIGN KEY' " + + "AND kcu.table_name = ? AND kcu.table_schema = ?"; + + try (PreparedStatement pstmt = conn.prepareStatement(query)) { + + pstmt.setString(1, tableName); + pstmt.setString(2, tableSchema); + ResultSet rs = pstmt.executeQuery(); + + while (rs.next()) { + ForeignKey foreignKey = new ForeignKey(); + foreignKey.setSchemaName(rs.getString("schema_name")); + foreignKey.setTableName(rs.getString("table_name")); + foreignKey.setColumnName(rs.getString("column_name")); + // need to remove all spaces from datatype so that we can do string matching with properties + foreignKey.setColumnDataType(rs.getString("column_data_type").replaceAll("\\s", "")); + foreignKey.setForeignTableSchema(rs.getString("foreign_table_schema")); + foreignKey.setForeignTableName(rs.getString("foreign_table_name")); + foreignKey.setForeignColumnName(rs.getString("foreign_column_name")); + foreignKeyList.add(foreignKey); + } + } catch (SQLException e) { + e.printStackTrace(); + } + + return foreignKeyList; + } + + public static void buildDependencyDAGForTable(Map> graph, List foreignKeyList, + String tableSchema, Connection conn) { + // Build the adjacency list + for (ForeignKey fk : foreignKeyList) { + graph.computeIfAbsent(fk.getTableName(), k -> new ArrayList<>()).add(new Dependency(fk.getForeignTableName(), -1)); + List fkOfFks = getForeignKeys(fk.getForeignTableName(), tableSchema, conn); + if (!fkOfFks.isEmpty()) { + buildDependencyDAGForTable(graph, fkOfFks, tableSchema, conn); + } + } + } + + public Map utilsMapping(List tableSchema, List primaryKeys, + List foreignKeys, int limit, int rows, + List uniqueConstraintColumns, + Map> udColumData) { + Map columnToUtilMapping = new LinkedHashMap<>(); + // take care of the primary keys first + for (PrimaryKey pk : primaryKeys) { + columnToUtilMapping.put(pk.getColumnName(), pkProperties.get(pk.getDataType())); + } + + for (ForeignKey fk : foreignKeys) { + if (!columnToUtilMapping.containsKey(fk.getColumnName())) { + FkPropertyMapping fkm = fkProperties.get(fk.getColumnDataType()); + PropertyMapping pm = new PropertyMapping(fkm.className, limit, fk.getDistinctValues()); + columnToUtilMapping.put(fk.getColumnName(), pm); + } + } + udColumData.forEach((colName, values) -> { + if (!columnToUtilMapping.containsKey(colName)) { + // Caveat: treating all user defined data types as list of String utility + PropertyMapping pm = new PropertyMapping("OneStringFromArray", values.size(), values); + columnToUtilMapping.put(colName, pm); + } + }); + // take care of the rest of the keys + for (Column col : tableSchema) { + if (!columnToUtilMapping.containsKey(col.getColumnName())) { + PropertyMapping pm; + // if column is one of the unique constraint columns, then use primary key util functions for it + if (uniqueConstraintColumns.contains(col.getColumnName())) + pm = pkProperties.get(col.getDataType()); + else { + + if (col.getDataType().equalsIgnoreCase("array")) { + // if it is array data type, find utility function with base data type + pm = arrayProperties.get(col.getBaseDataType().toLowerCase()); + // if suitable utility function is not present and the column is nullable, it can be skipped + if (pm == null && col.getNullable()) continue; + } else { + // if it is not array type, find utility function is properties. + pm = properties.get(col.getDataType().toLowerCase()); + } + } + + if (pm == null && !col.getNullable()) { + throw new RuntimeException(String.format("Cannot find suitable utility function for NOT NULL column " + + "`%s` of datatype `%s`. Consider asking #perf team to add a utility function for given " + + "data type", col.getColumnName(), col.getDataType())); + } + PropertyMapping pmForColumn = new PropertyMapping(pm); + for (int i = 0; i < pmForColumn.params.size(); i++) { + Object obj = pmForColumn.params.get(i); + if (obj instanceof String) { + if (obj.toString().equalsIgnoreCase("rows")) { + pmForColumn.params.set(i, rows); + } else if (obj.toString().equalsIgnoreCase("max") && col.getCharacterMaximumLength() != null) { + pmForColumn.params.set(i, col.getCharacterMaximumLength()); + } + } + } + columnToUtilMapping.put(col.getColumnName(), pmForColumn); + } + } + + return columnToUtilMapping; + } + + public Root generateMappingObject(String tableName, int rows, Map colToUtilsMapping, + List fkColNames, Map> udColumns) { + LoadRule loadRule = new LoadRule(tableName, rows); + colToUtilsMapping.forEach((colName, prop) -> { + Column1 col = new Column1(colName, prop.className); + + prop.params.forEach(param -> { + if (fkColNames.contains(colName)) { + if (param instanceof Integer || param instanceof Long) + col.params.add(param); + else + col.params.add(param.toString()); + } else if (udColumns.containsKey(colName)) { + if (param instanceof Integer || param instanceof Long) + col.params.add(param); + else + col.params.add(param.toString()); + } else { + if (param.toString().equalsIgnoreCase("rows")) { + col.params.add(rows); + } else { + col.params.add(Long.parseLong(param.toString())); + } + } + }); + + loadRule.columns.add(col); + }); + Properties properties1 = new Properties(List.of(loadRule)); + Microbenchmark mb = new Microbenchmark(properties1); + return new Root(mb); + } + + public void writeToFile(String tableName, int rows, Root root) { + // Configure SnakeYAML options + DumperOptions options = new DumperOptions(); + options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + options.setPrettyFlow(true); + + Representer representer = new Representer(options); + representer.addClassTag(Root.class, Tag.MAP); + representer.setPropertyUtils(new CustomPropertyUtils()); + Yaml yaml = new Yaml(representer, options); + + try { + // Read existing YAML file + FileReader reader = new FileReader(workConf.getConfigFilePath()); + Map existingData = yaml.load(reader); + reader.close(); + + // Create new YAML content + StringWriter writer = new StringWriter(); + yaml.dump(root, writer); + Map newData = yaml.load(new StringReader(writer.toString())); + + // Create a new combined data map + Map combinedData = new LinkedHashMap<>(); + combinedData.putAll(existingData); + combinedData.putAll(newData); + + // Write combined data to the new output file + FileWriter fileWriter = new FileWriter(String.format("%s/%s_loader.yaml", System.getProperty("user.dir"), tableName)); + yaml.dump(combinedData, fileWriter); + fileWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void getDistinctValuesFromParentTable(Connection conn, List foreignKeyList, int limit, String schemaOfTable) { + String queryTemplate = "SELECT DISTINCT %s FROM %s LIMIT %d"; + for (ForeignKey foreignKey : foreignKeyList) { + String query = String.format(queryTemplate, foreignKey.getForeignColumnName(), foreignKey.getForeignTableName(), limit); + try (PreparedStatement pstmt = conn.prepareStatement(query); + ResultSet rs = pstmt.executeQuery()) { + + List distinctValues = new ArrayList<>(); + while (rs.next()) { + distinctValues.add(rs.getObject(1)); + } + if (distinctValues.isEmpty()) { + Map levelAndTables = new LinkedHashMap<>(); + Map> graph = new HashMap<>(); + Map> depth = new TreeMap<>(); + Set visited = new HashSet<>(); + + buildDependencyDAGForTable(graph, foreignKeyList, schemaOfTable, conn); + + StringBuilder loadOrder = new StringBuilder(String.format("There are no entries in the parent " + + "table `%s` for column `%s` to be used as foreign key. Consider loading tables in " + + "following order/Levels(tables from `Level 0` first, then `Level 1` and so on: ", foreignKey.getForeignTableName(), + foreignKey.getForeignColumnName())); + + String startTable = graph.keySet().iterator().next(); + Map> levelsAndTables = getOrderOfImport(startTable, loadOrder, graph, depth, visited); + throw new RuntimeException(loadOrder.append(generateLoadOrder(levelsAndTables)).toString()); + } + foreignKey.setDistinctValues(distinctValues); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + public static class Column1 { + public String name; + public String util; + public List params; + + public Column1(String name, String util) { + this.name = name; + this.util = util; + this.params = new ArrayList<>(); + } + } + + public static class LoadRule { + public String table; + public int rows; + public List columns = new ArrayList<>(); + + public LoadRule(String table, int rows, List columns) { + this.table = table; + this.rows = rows; + this.columns = columns; + } + + public LoadRule(String table, int rows) { + this.table = table; + this.rows = rows; + } + } + + public static class Properties { + public List loadRules; + + public Properties(List loadRules) { + this.loadRules = loadRules; + } + } + + public static class Microbenchmark { + public Properties properties; + @JsonProperty("class") + public String className = "com.oltpbenchmark.benchmarks.featurebench.customworkload.YBDefaultMicroBenchmark"; + + public Microbenchmark(Properties properties) { + this.properties = properties; + } + } + + public static class Root { + public Microbenchmark microbenchmark; + + public Root(Microbenchmark microbenchmark) { + this.microbenchmark = microbenchmark; + } + } + + // Create custom PropertyUtils to enforce field order + static class CustomPropertyUtils extends PropertyUtils { + @Override + protected Set createPropertySet(Class type, BeanAccess bAccess) { + Set properties = super.createPropertySet(type, bAccess); + if (type == Column1.class) { + List order = Arrays.asList("name", "util", "params"); + List sortedProperties = new ArrayList<>(properties); + sortedProperties.sort(Comparator.comparingInt(p -> order.indexOf(p.getName()))); + return new LinkedHashSet<>(sortedProperties); + } + if (type == Microbenchmark.class) { + List order = Arrays.asList("className", "properties"); + List sortedProperties = new ArrayList<>(properties); + sortedProperties.sort(Comparator.comparingInt(p -> order.indexOf(p.getName()))); + return new LinkedHashSet<>(sortedProperties); + } + if (type == LoadRule.class) { + List order = Arrays.asList("table", "rows", "columns"); + List sortedProperties = new ArrayList<>(properties); + sortedProperties.sort(Comparator.comparingInt(p -> order.indexOf(p.getName()))); + return new LinkedHashSet<>(sortedProperties); + } + return properties; + } + } + + // Helper class to store table name and level change + public static class Dependency { + String table; + int levelChange; + + Dependency(String table, int levelChange) { + this.table = table; + this.levelChange = levelChange; + } + } + + // Function to print nodes by levels + public Map> getOrderOfImport(String startTable, StringBuilder loadOrder, + Map> graph , Map> depth, + Set visited) { + Map> levelsAndTables = new LinkedHashMap<>(); + dfs(startTable, 0, graph, depth, visited); + + // Adjust levels to start from 0 + Map> adjustedDepth = new TreeMap<>(); + for (Map.Entry> entry : depth.entrySet()) { + int adjustedLevel = entry.getKey() - minLevel; + adjustedDepth.computeIfAbsent(adjustedLevel, k -> new ArrayList<>()).addAll(entry.getValue()); + } + + // Output the final levels of nodes + for (Map.Entry> entry : adjustedDepth.entrySet()) { + int level = entry.getKey(); + List tablesAtLevel = entry.getValue(); + levelsAndTables.put(level, tablesAtLevel); + } + + return levelsAndTables; + } + + public StringBuilder generateLoadOrder(Map> levelAndTables) { + StringBuilder loadOrder = new StringBuilder(); + for (Map.Entry> entry : levelAndTables.entrySet()) { + int level = entry.getKey(); + loadOrder.append("\n").append("Level ").append(level).append(": ").append(String.join(", ", levelAndTables.get(level))); + } + + return loadOrder; + } + + // DFS function to populate the levels map + public void dfs(String table, int level, Map> graph , Map> depth, + Set visited) { + visited.add(table); + depth.computeIfAbsent(level, k -> new ArrayList<>()).add(table); + + // Update the minimum level encountered + if (level < minLevel) { + minLevel = level; + } + + if (graph.containsKey(table)) { + for (Dependency dep : graph.get(table)) { + if (!visited.contains(dep.table)) { + dfs(dep.table, level + dep.levelChange, graph, depth, visited); + } + } + } + } + + public void buildGraph(Connection conn, Set processedTables, Map> graph) { + String query = "SELECT tc.table_name AS child_table, ccu.table_name AS parent_table " + + "FROM information_schema.table_constraints AS tc " + + "JOIN information_schema.key_column_usage AS kcu " + + "ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema " + + "JOIN information_schema.constraint_column_usage AS ccu " + + "ON ccu.constraint_name = tc.constraint_name AND ccu.table_schema = tc.table_schema " + + "WHERE tc.constraint_type = 'FOREIGN KEY'"; + + try (Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(query)) { + while (rs.next()) { + String childTable = rs.getString("child_table"); + String parentTable = rs.getString("parent_table"); + + processedTables.add(parentTable.toLowerCase()); + processedTables.add(childTable.toLowerCase()); + // Build the adjacency list + graph.computeIfAbsent(parentTable, k -> new ArrayList<>()).add(new Dependency(childTable, 1)); + graph.computeIfAbsent(childTable, k -> new ArrayList<>()).add(new Dependency(parentTable, -1)); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static List getAllTables(Connection connection) throws SQLException { + List tables = new ArrayList<>(); + DatabaseMetaData metaData = connection.getMetaData(); + String[] types = {"TABLE"}; + try (ResultSet rs = metaData.getTables(null, null, "%", types)) { + while (rs.next()) { + String tableName = rs.getString("TABLE_NAME"); + tables.add(tableName); + } + } + return tables; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/dataloader/FkPropertyMapping.java b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/FkPropertyMapping.java new file mode 100644 index 000000000..5eabd5868 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/FkPropertyMapping.java @@ -0,0 +1,12 @@ +package com.oltpbenchmark.benchmarks.dataloader; + + +public class FkPropertyMapping { + public String className; + public String dataType; + + public FkPropertyMapping(String className, String dataType) { + this.className = className; + this.dataType = dataType; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/dataloader/ForeignKey.java b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/ForeignKey.java new file mode 100644 index 000000000..28fe99991 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/ForeignKey.java @@ -0,0 +1,93 @@ +package com.oltpbenchmark.benchmarks.dataloader; + +import java.util.List; + +public class ForeignKey { + private String schemaName; + private String tableName; + private String columnName; + private String columnDataType; + private String foreignTableSchema; + private String foreignTableName; + private String foreignColumnName; + private List distinctValues; // Add this line + + // Getters and Setters + public String getSchemaName() { + return schemaName; + } + + public void setSchemaName(String schemaName) { + this.schemaName = schemaName; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnDataType() { + return columnDataType; + } + + public void setColumnDataType(String columnDataType) { + this.columnDataType = columnDataType; + } + + public String getForeignTableSchema() { + return foreignTableSchema; + } + + public void setForeignTableSchema(String foreignTableSchema) { + this.foreignTableSchema = foreignTableSchema; + } + + public String getForeignTableName() { + return foreignTableName; + } + + public void setForeignTableName(String foreignTableName) { + this.foreignTableName = foreignTableName; + } + + public String getForeignColumnName() { + return foreignColumnName; + } + + public void setForeignColumnName(String foreignColumnName) { + this.foreignColumnName = foreignColumnName; + } + + public List getDistinctValues() { + return distinctValues; + } + + public void setDistinctValues(List distinctValues) { + this.distinctValues = distinctValues; + } + + @Override + public String toString() { + return "ForeignKey{" + + "schemaName='" + schemaName + '\'' + + ", tableName='" + tableName + '\'' + + ", columnName='" + columnName + '\'' + + ", columnDataType='" + columnDataType + '\'' + + ", foreignTableSchema='" + foreignTableSchema + '\'' + + ", foreignTableName='" + foreignTableName + '\'' + + ", foreignColumnName='" + foreignColumnName + '\'' + + ", distinctValues=" + distinctValues + + '}'; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/dataloader/PrimaryKey.java b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/PrimaryKey.java new file mode 100644 index 000000000..a3dfee6b8 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/PrimaryKey.java @@ -0,0 +1,31 @@ +package com.oltpbenchmark.benchmarks.dataloader; + +public class PrimaryKey { + private String columnName; + private String dataType; + + // Getters and Setters + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + @Override + public String toString() { + return "PrimaryKey{" + + "columnName='" + columnName + '\'' + + ", dataType='" + dataType + '\'' + + '}'; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/dataloader/PropertyMapping.java b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/PropertyMapping.java new file mode 100644 index 000000000..a39d3876e --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/dataloader/PropertyMapping.java @@ -0,0 +1,41 @@ +package com.oltpbenchmark.benchmarks.dataloader; + +import java.util.ArrayList; +import java.util.List; + +public class PropertyMapping { +// public String key; + public String className; + public int numParams; + public List params; + + + public PropertyMapping(String className, int numParams, List params) { +// this.key = key; + this.className = className; + this.numParams = numParams; + this.params = params; + } + + public PropertyMapping(PropertyMapping other) { + this.className = other.className; + this.numParams = other.numParams; + this.params = new ArrayList<>(); + for (Object param : other.params) { + this.params.add(clone(param)); + } + } + + private Object clone(Object obj) { + if (obj instanceof Cloneable) { + try { + // Use reflection to call the clone method + return obj.getClass().getMethod("clone").invoke(obj); + } catch (Exception e) { + throw new RuntimeException("Clone failed", e); + } + } + // Fallback to simple object copy (might not work for all types) + return obj; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/.DS_Store b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/.DS_Store new file mode 100644 index 000000000..4d18c1867 Binary files /dev/null and b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/.DS_Store differ diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchBenchmark.java new file mode 100644 index 000000000..a22f3b4f1 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchBenchmark.java @@ -0,0 +1,207 @@ +/* + * Copyright 2020 by OLTPBenchmark Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.oltpbenchmark.benchmarks.featurebench; + +import com.oltpbenchmark.DBWorkload; +import com.oltpbenchmark.WorkloadConfiguration; +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.api.Loader; +import com.oltpbenchmark.api.Worker; +import com.oltpbenchmark.benchmarks.featurebench.helpers.UtilToMethod; +import com.oltpbenchmark.benchmarks.featurebench.procedures.FeatureBench; +import com.oltpbenchmark.benchmarks.featurebench.workerhelpers.ExecuteRule; +import com.oltpbenchmark.benchmarks.featurebench.workerhelpers.Query; +import com.oltpbenchmark.util.TimeUtil; +import net.sf.jsqlparser.statement.delete.Delete; +import net.sf.jsqlparser.statement.insert.Insert; +import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.statement.update.Update; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * + */ +public class FeatureBenchBenchmark extends BenchmarkModule { + + private static final Logger LOG = LoggerFactory.getLogger(DBWorkload.class); + + public FeatureBenchBenchmark(WorkloadConfiguration workConf) { + super(workConf); + } + + @Override + protected List> makeWorkersImpl(int workcount) { + + List> workers = new ArrayList<>(); + HierarchicalConfiguration conf = workConf.getXmlConfig().configurationAt("microbenchmark"); + List> confExecuteRules = conf.configurationsAt("properties/executeRules[" + workcount + "]/run"); + String workloadName = conf.getString("properties/executeRules[" + workcount + "]/workload") != null ? conf.getString("properties/executeRules[" + workcount + "]/workload") : TimeUtil.getCurrentTimeString(); + + // Reset the shared per-workload state exactly once, before creating this + // workload's workers, so the "run once" init/teardown guards start clean. + FeatureBenchWorker.resetSharedState(); + + for (int i = 0; i < workConf.getTerminals(); ++i) { + FeatureBenchWorker worker = new FeatureBenchWorker(this, i, + conf.getString("class"), + conf.configurationAt("properties"), + configToExecuteRules(confExecuteRules, i, workConf.getTerminals()), + workloadName); + workers.add(worker); + } + return workers; + } + + @Override + protected List> makeWorkersImpl() throws IOException { + return null; + } + + @Override + protected Loader makeLoaderImpl() { + HierarchicalConfiguration conf = workConf.getXmlConfig().configurationAt("microbenchmark"); + FeatureBenchLoader loader = new FeatureBenchLoader(this); + loader.workloadClass = conf.getString("class", conf.getString("className")); + loader.config = conf.configurationAt("properties"); + return loader; + } + + @Override + protected Package getProcedurePackageImpl() { + return FeatureBench.class.getPackage(); + } + + private List configToExecuteRules(List> confExecuteRules, int workerId, int totalWorker) { + List executeRules = new ArrayList<>(); + for (HierarchicalConfiguration confExecuteRule : confExecuteRules) { + + if (!confExecuteRule.containsKey("name")) { + break; + } + + ExecuteRule rule = new ExecuteRule(); + rule.setName(confExecuteRule.getString("name")); + rule.setWeight(confExecuteRule.getInt("weight")); + List queries = new ArrayList<>(); + for (HierarchicalConfiguration confquery : confExecuteRule.configurationsAt("queries")) { + Query query = new Query(); + if (confquery.containsKey("pattern_count")) { + query.setPattern_count(confquery.getInt("pattern_count")); + } + String querystmt = confquery.getString("query"); + query.setQuery(querystmt); + if (confquery.containsKey("count")) { + query.setCount(confquery.getInt("count")); + } + + if (confquery.containsKey("explain-plan-rc-validation")) { + query.setExplainPlanRCValidateCount(confquery.getInt("explain-plan-rc-validation")); + } + + int query_hint_index = querystmt.indexOf("*/"); + String query_type = ""; + query_type = getQueryTypeforStatement(querystmt); + if (query_hint_index != -1) { + query_type = querystmt.substring(query_hint_index + 2, querystmt.indexOf(' ', query_hint_index + 4)).trim(); + + } + + if (query_type.equalsIgnoreCase("select")) { + query.setSelectQuery(true); + } + if (query_type.equalsIgnoreCase("update")) { + query.setUpdateQuery(true); + } + List baseutils = new ArrayList<>(); + + for (HierarchicalConfiguration bindingsList : confquery.configurationsAt("bindings")) { + String referenceName = bindingsList.getString("referenceName", null); + + if (bindingsList.containsKey("count")) { + int count = bindingsList.getInt("count"); + for (int i = 0; i < count; i++) { + UtilToMethod obj = new UtilToMethod(bindingsList.getString("util"), bindingsList.getList("params"), workerId, totalWorker, referenceName); + baseutils.add(obj); + } + } else if (bindingsList.containsKey("split_min_max_for_count")) { + int count = bindingsList.getInt("split_min_max_for_count"); + if (bindingsList.getList("params").size() == 2) { + List bindings = bindingsList.getList("params"); + int min = (int) bindings.get(0); + int max = (int) bindings.get(1); + int range = max - min + 1; + int splitSize = range / count; + int remainder = range % count; + + int currentMin = min; + for (int i = 0; i < count; i++) { + int currentMax = currentMin + splitSize - 1; + if (remainder > 0) { + currentMax++; + remainder--; + } + UtilToMethod obj = new UtilToMethod(bindingsList.getString("util"), List.of(currentMin, currentMax), workerId, totalWorker, referenceName); + baseutils.add(obj); + currentMin = currentMax + 1; + } + } + } else { + UtilToMethod obj = new UtilToMethod(bindingsList.getString("util"), bindingsList.getList("params"), workerId, totalWorker, referenceName); + baseutils.add(obj); + } + } + query.setBaseUtils(baseutils); + queries.add(query); + } + rule.setQueries(queries); + executeRules.add(rule); + } + return executeRules; + } + + private static String getQueryTypeforStatement(String sql) { + try { + // Parse the SQL using JSQLParser + net.sf.jsqlparser.statement.Statement statement = net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(sql); + + if (statement instanceof Select) { + return "SELECT"; + } else if (statement instanceof Insert) { + return "INSERT"; + } else if (statement instanceof Update) { + return "UPDATE"; + } else if (statement instanceof Delete) { + return "DELETE"; + } else { + return ""; + } + + } catch (Exception e) { + return ""; + } + } + + +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchLoader.java new file mode 100644 index 000000000..8d47e7c7a --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchLoader.java @@ -0,0 +1,343 @@ +/* + * Copyright 2020 by OLTPBenchmark Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.oltpbenchmark.benchmarks.featurebench; + +import com.oltpbenchmark.api.Loader; +import com.oltpbenchmark.api.LoaderThread; +import com.oltpbenchmark.benchmarks.featurebench.helpers.UtilToMethod; +import com.oltpbenchmark.benchmarks.featurebench.utils.BaseUtil; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.Statement; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +import java.lang.reflect.InvocationTargetException; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.*; + + +public class FeatureBenchLoader extends Loader { + private static final Logger LOG = LoggerFactory.getLogger(FeatureBenchLoader.class); + // Incremented by each loader thread at the end of its load(), and read in afterLoad() + // (which the framework runs per thread, concurrently, in a finally block) to detect the + // last finisher that should trigger the afterLoad DDLs. Must be atomic: with a plain int, + // concurrent loader threads (loaderthreads > 1) lose increments, the counter never reaches + // sizeOfLoadRule, and the afterLoad phase silently never runs. + static AtomicInteger numberOfGeneratorFinished = new AtomicInteger(0); + public String workloadClass = null; + public HierarchicalConfiguration config = null; + public YBMicroBenchmark ybm = null; + public int sizeOfLoadRule = 0; + static AtomicBoolean isAfterLoadDone = new AtomicBoolean(false); + PreparedStatement stmt; + + public FeatureBenchLoader(FeatureBenchBenchmark benchmark) { + super(benchmark); + } + + @Override + public List createLoaderThreads() { + try { + ybm = (YBMicroBenchmark) Class.forName(workloadClass) + .getDeclaredConstructor(HierarchicalConfiguration.class) + .newInstance(config); + + createPhaseAndBeforeLoad(); + + ArrayList loaderThreads = new ArrayList<>(); + if (ybm.loadOnceImplemented) { + loaderThreads.add(new GeneratorOnce(ybm)); + } else { + loadRulesYaml(loaderThreads); + } + sizeOfLoadRule = loaderThreads.size(); + return loaderThreads; + } catch (InstantiationException | IllegalAccessException | + InvocationTargetException | NoSuchMethodException | + ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + private void createPhaseAndBeforeLoad() { + try { + Connection conn = benchmark.makeConnection(); + if (!config.containsKey("create")) { + long createStart = System.currentTimeMillis(); + ybm.create(conn); + long createEnd = System.currentTimeMillis(); + LOG.info("Elapsed time in create phase: {} milliseconds", createEnd - createStart); + } + if (ybm.beforeLoadImplemented) { + ybm.beforeLoad(conn); + } + conn.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + private void loadRulesYaml(ArrayList loaderThreads) throws ClassNotFoundException, + InvocationTargetException, NoSuchMethodException, InstantiationException, + IllegalAccessException { + + List> loadRulesConfig = config.configurationsAt("loadRules"); + if (loadRulesConfig.isEmpty()) { + throw new RuntimeException("Empty Load Rules"); + } + LOG.info("Using YAML for load phase"); + for (HierarchicalConfiguration loadRuleConfig : loadRulesConfig) { + List> + columnsConfigs = loadRuleConfig.configurationsAt("columns"); + List> columns = new ArrayList<>(); + for (HierarchicalConfiguration columnsConfig : columnsConfigs) { + Iterator columnKeys = columnsConfig.getKeys(); + Map column = new HashMap<>(); + while (columnKeys.hasNext()) { + String element = (String) columnKeys.next(); + Object params; + if (element.equals("params")) { + params = columnsConfig.getList(Object.class, element); + } else { + params = columnsConfig.get(Object.class, element); + } + column.put(element, params); + } + columns.add(column); + } + if (loadRuleConfig.containsKey("count")) { + for (int i = 0; i < loadRuleConfig.getInt("count"); i++) { + String[] tableNames = loadRuleConfig.getString("table").split(","); + for (String tableName : tableNames) { + loaderThreads.add(new GeneratorYaml((tableName.strip() + + String.valueOf(i + 1)), loadRuleConfig.getLong("rows"), columns)); + } + } + } else { + String[] tableNames = loadRuleConfig.getString("table").split(","); + for (String tableName : tableNames) { + loaderThreads.add(new GeneratorYaml(tableName.strip(), + loadRuleConfig.getLong("rows"), columns)); + } + } + } + } + + private void afterLoadPhase() { + try { + if (ybm.afterLoadImplemented) { + // TODO: see if we can utilise connection object instead of creating new one + Connection conn = benchmark.makeConnection(); + ybm.afterLoad(conn); + conn.close(); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + private class GeneratorYaml extends LoaderThread { + private final List baseutils = new ArrayList<>(); + private final String tableName; + private final long numberOfRows; + private final List> columns; + + public GeneratorYaml(String tableName, long numberOfRows, + List> columns) { + super(benchmark); + this.tableName = tableName; + this.numberOfRows = numberOfRows; + this.columns = columns; + for (Map col : columns) { + // order is reserved keyword in postgres. While inserting, use ""; + if (col.get("name").toString().equalsIgnoreCase("order")) + col.put("name", "\"order\""); + if (col.containsKey("count")) { + for (int i = 0; i < (int) col.get("count"); i++) { + UtilToMethod obj = new UtilToMethod(col.get("util"), col.get("params"), null); + this.baseutils.add(obj); + } + } else { + UtilToMethod obj = new UtilToMethod(col.get("util"), col.get("params"), null); + this.baseutils.add(obj); + } + } + } + + @Override + public void load(Connection conn) throws SQLException { + + try { + int batchSize = workConf.getBatchSize(); + StringBuilder columnString = new StringBuilder(); + StringBuilder valueString = new StringBuilder(); + for (int index=0; index < this.columns.size(); index++) { + Map columnsDetails = this.columns.get(index); + if (columnsDetails.containsKey("count")) { + for (int i = 0; i < (int) columnsDetails.get("count"); i++) { + columnString.append(columnsDetails.get("name")).append(i + 1).append(","); + typeCastDataTypes(valueString, index); + } + } else { + columnString.append(columnsDetails.get("name")).append(","); + typeCastDataTypes(valueString, index); + } + + } + columnString.setLength(columnString.length() - 1); + valueString.setLength(valueString.length() - 1); + String insertStmt = "INSERT INTO " + this.tableName + " (" + columnString + + ") VALUES " + "(" + valueString + ")"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + int currentBatchSize = 0; + for (int i = 0; i < this.numberOfRows; i++) { + for (int j = 0; j < baseutils.size(); j++) { + stmt.setObject(j + 1, this.baseutils.get(j).get()); + } + currentBatchSize += 1; + stmt.addBatch(); + if (currentBatchSize == batchSize) { + stmt.executeBatch(); + currentBatchSize = 0; + } + } + if (currentBatchSize != 0) { + stmt.executeBatch(); + } + stmt.close(); + + } catch (IllegalAccessException | + InvocationTargetException e) { + e.printStackTrace(); + } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException e) { + throw new RuntimeException(e); + } + + numberOfGeneratorFinished.incrementAndGet(); + } + + private void typeCastDataTypes(StringBuilder valueString, int index) { + String utilName = this.baseutils.get(index).getInstance().getClass().getName().toLowerCase(); + BaseUtil utilInstance = this.baseutils.get(index).getInstance(); + + if (utilName.contains("arraygen")) { + if(utilName.contains("integer")) + valueString.append("?::int[],"); + else if (utilName.contains("long")) + valueString.append("?::bigint[],"); + else if (utilName.contains("double")) + valueString.append("?::double[],"); + else if (utilName.contains("text")) + valueString.append("?::text[],"); + else if (utilName.contains("float")) { + try { + int dimension = 0; + if (utilInstance instanceof com.oltpbenchmark.benchmarks.featurebench.utils.RandomFloatArrayGen) { + dimension = ((com.oltpbenchmark.benchmarks.featurebench.utils.RandomFloatArrayGen) utilInstance).getArraySize(); + } + if (dimension > 0) { + valueString.append("?::vector(").append(dimension).append("),"); + } else { + valueString.append("?,"); + } + } catch (Exception e) { + valueString.append("?,"); + } + } else { + valueString.append("?,"); + } + } + else if (utilName.contains("vectorgen")) { + try { + int dimension = 0; + if (utilInstance instanceof com.oltpbenchmark.benchmarks.featurebench.utils.DeterministicVectorGen) { + dimension = ((com.oltpbenchmark.benchmarks.featurebench.utils.DeterministicVectorGen) utilInstance).getArraySize(); + } + if (dimension > 0) { + valueString.append("?::vector(").append(dimension).append("),"); + } else { + valueString.append("?,"); + } + } catch (Exception e) { + valueString.append("?,"); + } + } + else if (utilName.contains("json")) + valueString.append("?::JSON,"); + else { + valueString.append("?,"); + } + } + + @Override + public void afterLoad() { + if (numberOfGeneratorFinished.get() != sizeOfLoadRule) return; + afterLoadPhaseYaml(); + } + } + + private synchronized void afterLoadPhaseYaml() { + if (config.containsKey("afterLoad") && !isAfterLoadDone.get()) { + try { + System.out.println("In after load"); + Statement stmtObj = benchmark.makeConnection().createStatement(); + List afterLoadDDLs = config.getList(String.class, "afterLoad"); + long afterLoadStart = System.currentTimeMillis(); + for (String ddl : afterLoadDDLs) { + stmtObj.execute(ddl); + } + long afterLoadEnd = System.currentTimeMillis(); + LOG.info("Elapsed time in after load phase: {} milliseconds", afterLoadEnd - afterLoadStart); + stmtObj.close(); + isAfterLoadDone.set(true); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + } + + private class GeneratorOnce extends LoaderThread { + final YBMicroBenchmark ybm; + + public GeneratorOnce(YBMicroBenchmark ybm) { + super(benchmark); + this.ybm = ybm; + } + + @Override + public void load(Connection conn) throws SQLException, ClassNotFoundException, + InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + ybm.loadOnce(conn); + } + + @Override + public void afterLoad() { + afterLoadPhase(); + } + } +} + + + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchWorker.java new file mode 100644 index 000000000..191200460 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeatureBenchWorker.java @@ -0,0 +1,705 @@ +/* + * Copyright 2020 by OLTPBenchmark Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.oltpbenchmark.benchmarks.featurebench; + +import com.oltpbenchmark.api.Procedure.UserAbortException; +import com.oltpbenchmark.api.TransactionType; +import com.oltpbenchmark.api.Worker; +import com.oltpbenchmark.benchmarks.featurebench.helpers.UtilToMethod; +import com.oltpbenchmark.benchmarks.featurebench.utils.BaseUtil; +import com.oltpbenchmark.benchmarks.featurebench.utils.ExpressionEval; +import com.oltpbenchmark.benchmarks.featurebench.workerhelpers.ExecuteRule; +import com.oltpbenchmark.benchmarks.featurebench.workerhelpers.Query; +import com.oltpbenchmark.types.DatabaseType; +import com.oltpbenchmark.types.State; +import com.oltpbenchmark.types.TransactionStatus; +import com.oltpbenchmark.util.FileUtil; +import com.yugabyte.util.PSQLException; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.json.JSONObject; +import org.json.JSONArray; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.reflect.InvocationTargetException; +import java.sql.*; +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + + + +/** + * + */ +public class FeatureBenchWorker extends Worker { + private static final Logger LOG = LoggerFactory.getLogger(FeatureBenchWorker.class); + // SQL strings and explain plans are collected verbatim and can balloon the detailed results + // JSON (e.g. multi-row INSERTs inline every value). Beyond this length they are trimmed, since + // only the standard SQL structure is of interest, not the actual bound values. + private static final int MAX_COLLECTED_STRING_LENGTH = 1000; + private final HierarchicalConfiguration config; + private YBMicroBenchmark ybm; + private final List executeRules; + private final String workloadName; + // The "execute" flag and whether any executeRules exist are constant for the life of a + // worker, so resolve them once here instead of re-parsing the HierarchicalConfiguration + // key path on every executeWork() call (the per-transaction hot loop). Both are per-worker + // final state, so this is safe at any terminal count. + private final boolean executeCustom; + private final boolean hasExecuteRules; + // Keyed by the Query object (identity semantics -- Query does not override equals/hashCode) + // rather than by the SQL text, so each lookup in the hot loop is an identity hash + reference + // compare instead of a full String.equals() over the (potentially very long) SQL. Each worker + // owns a distinct Query graph (see FeatureBenchBenchmark.configToExecuteRules, called per + // worker), and this map + its statements are bound to this worker's connection, so it stays + // private per worker. + private Map preparedStatementsPerQuery; + public static Map queryToExplainMap = new HashMap<>(); + + static AtomicBoolean isInitializeDone = new AtomicBoolean(false); + + // tearDown() runs twice per worker -- once from the worker thread (Worker.run) and + // once from the master thread (ThreadBench.finalizeWorkers) -- and each worker closes + // its own connection at the end of tearDown(). These "run exactly once" guards make + // the global collection / user cleanup happen a single time, on the FIRST invocation, + // whose connection is still open. (A count/"last worker" gate is unsafe here: it fires + // on a later invocation whose connection has already been closed, which surfaces as a + // "connection closed" failure while collecting pg_stat_statements.) + static AtomicBoolean isPGStatStatementCollected = new AtomicBoolean(false); + static AtomicBoolean isCleanUpDone = new AtomicBoolean(false); + + public FeatureBenchWorker(FeatureBenchBenchmark benchmarkModule, + int id, + String workloadClass, + HierarchicalConfiguration workerConfig, + List executeRules, + String workloadName) { + super(benchmarkModule, id); + this.executeRules = executeRules; + this.config = workerConfig; + this.workloadName = workloadName; + this.executeCustom = config.containsKey("execute") && config.getBoolean("execute"); + this.hasExecuteRules = executeRules != null && !executeRules.isEmpty(); + // NOTE: per-workload shared state is reset once in + // FeatureBenchBenchmark.makeWorkersImpl (via resetSharedState()) before any + // worker is constructed -- not here -- so the "run once" guards do not depend + // on the ordering of individual worker constructors. + try { + ybm = (YBMicroBenchmark) Class.forName(workloadClass) + .getDeclaredConstructor(HierarchicalConfiguration.class) + .newInstance(config); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * Reset the shared, static per-workload state. Must be called exactly once per + * workload run, BEFORE the workers for that run are created (see + * FeatureBenchBenchmark.makeWorkersImpl). Doing it here rather than in each worker + * constructor keeps the "run once" guards correct regardless of construction order + * or worker reuse, and clears the accumulated explain output between workloads. + */ + public static void resetSharedState() { + isInitializeDone.set(false); + isPGStatStatementCollected.set(false); + isCleanUpDone.set(false); + queryToExplainMap.clear(); + } + + protected void initialize() { + try { + preparedStatementsPerQuery = new IdentityHashMap<>(); + for (ExecuteRule executeRule : executeRules) { + for (Query query : executeRule.getQueries()) { + PreparedStatement stmt = conn.prepareStatement(query.getQuery()); + preparedStatementsPerQuery.put(query, stmt); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + + + if (this.getWorkloadConfiguration().getIsOptimalThreadsWorkload()) { + return; + } + + if (isInitializeDone.get()) return; + synchronized (FeatureBenchWorker.class) { + if (isInitializeDone.get()) return; + try { + if (this.getWorkloadConfiguration().getXmlConfig().getBoolean("collect_pg_stat_statements", false)) { + LOG.info("Resetting pg_stat_statements for workload : " + this.workloadName); + try { + Statement stmt = conn.createStatement(); + stmt.executeQuery("SELECT pg_stat_statements_reset();"); + if (!conn.getAutoCommit()) + conn.commit(); + } catch (SQLException e) { + throw new RuntimeException("Failed to reset pg_stat_statements for workload '" + + this.workloadName + "'. Is the pg_stat_statements extension installed?", e); + } + + } + // For Postgres, we need to reset pg_stat_user_indexes + if (this.getWorkloadConfiguration().getDatabaseType().equals(DatabaseType.POSTGRES)) { + LOG.info("Resetting pg_stat_user_indexes for workload : " + this.workloadName); + try { + Statement stmt = conn.createStatement(); + stmt.executeQuery("SELECT pg_stat_reset();"); + if (!conn.getAutoCommit()) + conn.commit(); + } catch (SQLException e) { + throw new RuntimeException("Failed to reset pg_stat (pg_stat_reset) for workload '" + + this.workloadName + "'.", e); + } + } + + if (this.getWorkloadConfiguration().getXmlConfig().getBoolean("analyze_on_all_tables", false)) { + LOG.info("Running analyze on all tables"); + try { + Statement stmt = conn.createStatement(); + stmt.execute("ANALYZE;"); + if (!conn.getAutoCommit()) + conn.commit(); + } catch (SQLException e) { + throw new RuntimeException("Failed to run ANALYZE for workload '" + + this.workloadName + "'.", e); + } + } + + String outputDirectory = "results"; + FileUtil.makeDirIfNotExists(outputDirectory); + + String explainSelect = "explain (analyze,verbose,costs,buffers) "; + String explainUpdate = "explain (analyze) "; + String explainOthers = "explain "; + + if (this.getWorkloadConfiguration().getXmlConfig().getBoolean("force_capture_explain_analyze", false)) { + explainOthers = "explain (analyze,verbose,costs,buffers) "; + } + if (this.getWorkloadConfiguration().getXmlConfig().containsKey("use_dist_in_explain") + && this.getWorkloadConfiguration().getXmlConfig().getBoolean("use_dist_in_explain")) { + if (this.getWorkloadConfiguration().getXmlConfig().getString("type").equalsIgnoreCase("YUGABYTE")) { + explainSelect = explainSelect.replace(") ", ",debug,dist) "); + explainUpdate = explainUpdate.replace(") ", ",debug,dist) "); + explainOthers = explainOthers.replace(") ", ",debug,dist) "); + } else { + throw new RuntimeException("dist and debug option for explain not supported by this database type, Please remove key!"); + } + } + + Map explainDDLMap = new LinkedHashMap<>(); + + if (!this.getWorkloadConfiguration().getXmlConfig().getBoolean("disable_explain", false)) { + for (ExecuteRule er : executeRules) { + for (Query query : er.getQueries()) { + String querystmt = query.getQuery(); + try { + PreparedStatement stmt = conn.prepareStatement((query.isSelectQuery() ? explainSelect : query.isUpdateQuery() ? explainUpdate : explainOthers) + querystmt); + List baseUtils = query.getBaseUtils(); + Object[] generatedValues = generateParameterValues(baseUtils); + for (int j = 0; j < generatedValues.length; j++) { + stmt.setObject(j + 1, generatedValues[j]); + } + explainDDLMap.put(query.getQuery(), stmt); + } catch (SQLException | ClassNotFoundException | InvocationTargetException | NoSuchMethodException | + InstantiationException | IllegalAccessException e) { + throw new RuntimeException("Failed to prepare EXPLAIN for query [" + querystmt + + "] in workload '" + this.workloadName + "'.", e); + } + + } + } + } + try { + if (!explainDDLMap.isEmpty()) + runExplainAnalyse(explainDDLMap); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + // Explain statements are one-shot; close them here instead of leaking + // them on the connection for the whole run. runExplainAnalyse keeps the + // map pointing at the live statement even when it swaps one out for the + // dist/debug retry, so this closes the right handles. + for (PreparedStatement explainStmt : explainDDLMap.values()) { + try { + explainStmt.close(); + } catch (SQLException ignore) { + // best-effort close + } + } + } + } finally { + // Mark done even if a step above threw, so sibling threads blocked on + // the monitor do not re-run this once-only initialization work. + isInitializeDone.set(true); + } + } + + } + + + public void runExplainAnalyse(Map explainDDLMap) throws SQLException { + LOG.info("Running explain for select/update queries before execute phase for workload : " + this.workloadName); + for (Map.Entry entry : explainDDLMap.entrySet()) { + String query = entry.getKey(); + PreparedStatement ddl = entry.getValue(); + JSONObject jsonObject = new JSONObject(); + int countResultSetGen = 0; + boolean distOptionPresent = true; + while (countResultSetGen < 3) { + try (ResultSet ignored = ddl.executeQuery()) { + if(!conn.getAutoCommit()) + conn.commit(); + } catch (PSQLException e) { + if (distOptionPresent && e.getMessage().contains("unrecognized EXPLAIN option \"dist\"")) { + String modifiedQuery = ddl.toString().replace("dist,", ""); + ddl = swapStatement(entry, ddl, modifiedQuery); + distOptionPresent = false; + continue; + } else if (distOptionPresent && e.getMessage().contains("unrecognized EXPLAIN option \"debug\"")) { + String modifiedQuery = ddl.toString().replace("debug", ""); + ddl = swapStatement(entry, ddl, modifiedQuery); + distOptionPresent = false; + continue; + } else { + throw e; + } + } + countResultSetGen++; + } + jsonObject.put("SQL", trimToMaxLength(ddl.toString())); + double explainStart = System.currentTimeMillis(); + StringBuilder data = new StringBuilder(); + try (ResultSet rs = ddl.executeQuery()) { + if(!conn.getAutoCommit()) + conn.commit(); + while (rs.next()) { + data.append(rs.getString(1)); + data.append("\n"); + } + } + double explainEnd = System.currentTimeMillis(); + jsonObject.put("ResultSet", data.toString()); + + Pattern pattern = Pattern.compile("Planning Time: (.+?) ms Execution Time: (.+?) ms " + + "Peak Memory Usage: (.+?)"); + Matcher matcher = pattern.matcher(data.toString()); + while(matcher.find()) { + jsonObject.put("Planning Time(ms)", matcher.group(1)); + jsonObject.put("Execution Time(ms)", matcher.group(2)); + jsonObject.put("Peak Memory Usage(kB)", matcher.group(3)); + } + Pattern rowsPattern = Pattern.compile("\\(actual[^)]*rows=(\\d+)\\s+loops="); + Matcher rowsMatcher = rowsPattern.matcher(data.toString()); + if (rowsMatcher.find()) { + jsonObject.put("ExplainPlanRows", rowsMatcher.group(1)); + } + + jsonObject.put("ClientSideExplainTime(ms)", explainEnd - explainStart); + queryToExplainMap.put(query, jsonObject); + } + } + + /** + * Prepare a replacement explain statement (used for the dist/debug retry), close the + * old one, and update the map entry so the live statement is the one that gets closed + * by initialize()'s cleanup. Returns the replacement. + */ + private PreparedStatement swapStatement(Map.Entry entry, + PreparedStatement old, String newQuery) throws SQLException { + PreparedStatement replacement = conn.prepareStatement(newQuery); + entry.setValue(replacement); + try { + old.close(); + } catch (SQLException ignore) { + // best-effort close of the statement we are replacing + } + return replacement; + } + + + /** + * Generates parameter values for a query, evaluating expressions with context from named references. + * Uses a two-pass approach: + * 1. Generate all non-expression values and build context map + * 2. Evaluate expressions using the context + * + * @param baseUtils List of utility methods/expressions to generate values + * @return Array of generated values ready for PreparedStatement binding + */ + private Object[] generateParameterValues(List baseUtils) + throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + + int size = baseUtils.size(); + Object[] generatedValues = new Object[size]; + // Allocated lazily: most queries have neither reference names nor expressions, + // so we avoid a throwaway HashMap on every execution in the worker hot loop. + Map context = null; + boolean hasExpression = false; + + // First pass: generate all non-expression values and build context + for (int j = 0; j < size; j++) { + UtilToMethod util = baseUtils.get(j); + if (util.isExpression()) { + // Skip expressions in first pass + hasExpression = true; + continue; + } + Object value = util.get(); + generatedValues[j] = value; + + // Add to context if it has a reference name + if (util.getReferenceName() != null) { + if (context == null) { + context = new HashMap<>(); + } + context.put(util.getReferenceName(), value); + } + } + + // Second pass: evaluate expressions with context (skipped entirely when none) + if (hasExpression) { + Map ctx = (context != null) ? context : Collections.emptyMap(); + for (int j = 0; j < size; j++) { + UtilToMethod utilMethod = baseUtils.get(j); + if (utilMethod.isExpression()) { + // This is an expression - evaluate it + BaseUtil util = utilMethod.getInstance(); + if (util instanceof ExpressionEval) { + ((ExpressionEval) util).setContext(ctx); + generatedValues[j] = utilMethod.get(); + } + } + } + } + + return generatedValues; + } + + @Override + protected TransactionStatus executeWork(Connection conn, TransactionType txnType) throws + UserAbortException, SQLException { + try { + if (executeCustom) { + ybm.execute(conn); + return TransactionStatus.SUCCESS; + } else if (!hasExecuteRules) { + if (this.configuration.getWorkloadState().getGlobalState() == State.MEASURE) { + ybm.executeOnce(conn, this.getBenchmark()); + } + return TransactionStatus.SUCCESS; + } + + int executeRuleIndex = txnType.getId() - 1; + ExecuteRule executeRule = executeRules.get(executeRuleIndex); + boolean zeroRowsTransaction = false; + for (Query query : executeRule.getQueries()) { + PreparedStatement stmt = this.preparedStatementsPerQuery.get(query); + List baseUtils = query.getBaseUtils(); + int count = query.getCount(); + + for (int i = 0; i < count; i++) { + // Generate parameter values with expression evaluation + Object[] generatedValues = generateParameterValues(baseUtils); + + // Set all parameters in the prepared statement + for (int j = 0; j < generatedValues.length; j++) { + stmt.setObject(j + 1, generatedValues[j]); + } + + if (query.isSelectQuery() || query.isReturningQuery()) { + // try-with-resources so the (possibly large) result set is + // released as soon as we finish counting rows, rather than + // lingering on the cached PreparedStatement until its next reuse. + try (ResultSet rs = stmt.executeQuery()) { + long countSet = 0; + while (rs.next()) countSet++; + if (countSet == 0) zeroRowsTransaction = true; + } + } else { + int updatedRows = stmt.executeUpdate(); + if (updatedRows == 0) zeroRowsTransaction = true; + } + } + } + if (zeroRowsTransaction) + return TransactionStatus.ZERO_ROWS; + + } catch (ClassNotFoundException | InvocationTargetException + | InstantiationException | IllegalAccessException | + NoSuchMethodException e) { + throw new RuntimeException(e); + } + return TransactionStatus.SUCCESS; + } + + + @Override + public void tearDown() { + synchronized (FeatureBenchWorker.class) { + // Collect exactly once, on the first tearDown() invocation to get here (whose + // connection is still open). See the isPGStatStatementCollected/isCleanUpDone + // field comment for why a "last worker" gate is unsafe given tearDown() runs + // twice per worker and each worker closes its own connection. + boolean shouldCollect = this.getWorkloadConfiguration().getXmlConfig().getBoolean("collect_pg_stat_statements", false); + if ( !isPGStatStatementCollected.get() && !this.getWorkloadConfiguration().getIsOptimalThreadsWorkload() && !this.configuration.getNewConnectionPerTxn() && shouldCollect && this.conn != null) { + + Map queryStringsAndRC = new LinkedHashMap<>(); + for (ExecuteRule er : executeRules) { + for (int i = 0; i < er.getQueries().size(); i++) { + Query q = er.getQueries().get(i); + queryStringsAndRC.put(q.getQuery(), q.getExplainPlanRCValidateCount()); + } + } + + List jsonResultsList = new ArrayList<>(); + JSONObject pgStatOutputs = null; + JSONObject pgPreparedStatementOutputs = null; + JSONArray pgStatUserIndexesOutputs = null; + try { + LOG.info("Collecting pg_stat_statements for workload : " + this.workloadName); + pgStatOutputs = callPGStats(); + pgPreparedStatementOutputs = collectPgPreparedStatements(); + } catch (SQLException e) { + throw new RuntimeException("Failed to collect pg_stat_statements / pg_prepared_statements for workload '" + + this.workloadName + "'.", e); + } + + // For Postgres, we need to collect pg_stat_user_indexes + if (this.getWorkloadConfiguration().getDatabaseType().equals(DatabaseType.POSTGRES)) { + LOG.info("Collecting pg_stat_user_indexes for workload : " + this.workloadName); + try { + pgStatUserIndexesOutputs = callPGStatUserIndexes(); + } catch (SQLException e) { + throw new RuntimeException("Failed to collect pg_stat_user_indexes for workload '" + + this.workloadName + "'.", e); + } + } + + for (Map.Entry entry : queryStringsAndRC.entrySet()) { + JSONObject inner = new JSONObject(); + inner.put("query", entry.getKey()); + inner.put("pg_stat_statements", pgStatOutputs == null ? new JSONObject() : findQueryInPgStatUsingCosine(pgStatOutputs, entry.getKey())); + + if (entry.getValue() != -1) + inner.put("explainPlanRcValidationSuccess", Integer.parseInt((String) queryToExplainMap.getOrDefault(entry.getKey(), new JSONObject()).get("ExplainPlanRows")) == entry.getValue()); + inner.put("explain", queryToExplainMap.getOrDefault(entry.getKey(), new JSONObject())); + inner.put("prepared_statements", pgPreparedStatementOutputs == null ? new JSONObject() : pgPreparedStatementOutputs); + jsonResultsList.add(inner); + } + if (pgStatUserIndexesOutputs != null) { + jsonResultsList.add(new JSONObject().put("pg_stat_user_indexes", pgStatUserIndexesOutputs)); + } + this.featurebenchAdditionalResults.setJsonResultsList(jsonResultsList); + isPGStatStatementCollected.set(true); + } + + if ((executeCustom || !hasExecuteRules) && !isCleanUpDone.get()) { + try { + ybm.cleanUp(conn); + } catch (SQLException e) { + throw new RuntimeException(e); + } + LOG.info("\n=================Cleanup Phase taking from User=========\n"); + isCleanUpDone.set(true); + } + + if (!this.configuration.getNewConnectionPerTxn() && this.conn != null) { + try { + conn.close(); + } catch (SQLException e) { + LOG.error("Connection couldn't be closed.", e); + } + } + } + } + + private JSONObject callPGStats() throws SQLException{ + // Filter EXPLAIN rows server-side (findQueryInPgStatUsingCosine discards them + // anyway) so the in-memory snapshot stays smaller on busy clusters. + String pgStatQuery = "select * from pg_stat_statements where lower(btrim(query)) not like 'explain%';"; + JSONObject pgStatOutputs = new JSONObject(); + try (Statement stmt = this.conn.createStatement(); + ResultSet resultSet = stmt.executeQuery(pgStatQuery)) { + if(!conn.getAutoCommit()) + conn.commit(); + ResultSetMetaData rsmd = resultSet.getMetaData(); + int resultSetCount = 0; + while (resultSet.next()) { + JSONObject pgStatOutputPerRecord = new JSONObject(); + for ( int i = 1; i <= rsmd.getColumnCount(); i++) { + pgStatOutputPerRecord.put(rsmd.getColumnName(i), resultSet.getString(i)); + } + pgStatOutputs.put("Record_" + resultSetCount, pgStatOutputPerRecord); + resultSetCount++; + } + } + return pgStatOutputs; + } + + /** + * Trims a collected SQL/explain string to {@link #MAX_COLLECTED_STRING_LENGTH} characters so the + * detailed results JSON stays small. The bound values (e.g. the VALUES (...) list of a multi-row + * INSERT) are not of interest — only the standard SQL structure is — so anything beyond the limit + * is dropped and replaced with a truncation marker noting how many characters were removed. + */ + private static String trimToMaxLength(String value) { + if (value == null || value.length() <= MAX_COLLECTED_STRING_LENGTH) { + return value; + } + int trimmed = value.length() - MAX_COLLECTED_STRING_LENGTH; + return value.substring(0, MAX_COLLECTED_STRING_LENGTH) + "...[truncated " + trimmed + " chars]"; + } + + private JSONObject collectPgPreparedStatements() throws SQLException{ + String pgPreparedStatements = "select * from pg_prepared_statements;"; + JSONObject pgPreparedStatementOutputs = new JSONObject(); + try (Statement stmt = this.conn.createStatement(); + ResultSet resultSet = stmt.executeQuery(pgPreparedStatements)) { + if(!conn.getAutoCommit()) + conn.commit(); + ResultSetMetaData rsmd = resultSet.getMetaData(); + int resultSetCount = 0; + while (resultSet.next()) { + JSONObject pgPreparedStatementOutputPerRecord = new JSONObject(); + for ( int i = 1; i <= rsmd.getColumnCount(); i++) { + String columnName = rsmd.getColumnName(i); + // parameter_types can be very large for multi-row prepared statements; drop it entirely. + if (columnName.equals("parameter_types")) { + continue; + } + String value = resultSet.getString(i); + // statement can be very large for multi-row INSERTs; trim it to the standard structure. + if (columnName.equals("statement")) { + value = trimToMaxLength(value); + } + pgPreparedStatementOutputPerRecord.put(columnName, value); + } + pgPreparedStatementOutputs.put("Record_" + resultSetCount, pgPreparedStatementOutputPerRecord); + resultSetCount++; + } + } + return pgPreparedStatementOutputs; + } + + private List tokenizeQuery(String query) { + // Remove placeholders + String cleaned = query.replaceAll("\\?", ""); + + // Remove huge IN (...) clauses completely + cleaned = cleaned.replaceAll("(?i)in\\s*\\(([^)]*)\\)", "in()"); + + // Normalize whitespace and lowercase + cleaned = cleaned.replaceAll("\\s+", " ").trim().toLowerCase(); + + // Tokenize by word characters + return Arrays.asList(cleaned.split("\\W+")); + } + + private double cosineSimilarity(List tokens1, List tokens2) { + Map freq1 = getFrequencyMap(tokens1); + Map freq2 = getFrequencyMap(tokens2); + + Set allTokens = new HashSet<>(); + allTokens.addAll(freq1.keySet()); + allTokens.addAll(freq2.keySet()); + + double dotProduct = 0.0; + double norm1 = 0.0; + double norm2 = 0.0; + + for (String token : allTokens) { + int v1 = freq1.getOrDefault(token, 0); + int v2 = freq2.getOrDefault(token, 0); + + dotProduct += v1 * v2; + norm1 += v1 * v1; + norm2 += v2 * v2; + } + + return (norm1 == 0 || norm2 == 0) ? 0.0 : dotProduct / (Math.sqrt(norm1) * Math.sqrt(norm2)); + } + + private Map getFrequencyMap(List tokens) { + Map freqMap = new HashMap<>(); + for (String token : tokens) { + freqMap.put(token, freqMap.getOrDefault(token, 0) + 1); + } + return freqMap; + } + + private JSONObject findQueryInPgStatUsingCosine(JSONObject pgStatOutputs, String inputQuery) { + List inputTokens = tokenizeQuery(inputQuery); + + double maxSimilarity = -1.0; + int minLengthDiff = Integer.MAX_VALUE; + String matchedKey = null; + + for (String key : pgStatOutputs.keySet()) { + JSONObject value = (JSONObject) pgStatOutputs.get(key); + String pgQuery = value.getString("query").trim(); + + // ❌ Skip explain queries + if (pgQuery.toLowerCase().startsWith("explain")) { + continue; + } + + List pgTokens = tokenizeQuery(pgQuery); + double similarity = cosineSimilarity(inputTokens, pgTokens); + int lengthDiff = Math.abs(inputTokens.size() - pgTokens.size()); + + if (similarity > maxSimilarity || (similarity == maxSimilarity && lengthDiff < minLengthDiff)) { + maxSimilarity = similarity; + minLengthDiff = lengthDiff; + matchedKey = key; + } + } + + return matchedKey != null ? (JSONObject) pgStatOutputs.get(matchedKey) : null; + } + + private JSONArray callPGStatUserIndexes() throws SQLException{ + String pgStatUserIndexes = "SELECT relname AS table_name, seq_scan, idx_scan, seq_tup_read, idx_tup_fetch FROM pg_stat_user_tables;"; + JSONArray pgStatUserIndexesOutputs = new JSONArray(); + try (Statement stmt = this.conn.createStatement(); + ResultSet resultSet = stmt.executeQuery(pgStatUserIndexes)) { + if(!conn.getAutoCommit()) + conn.commit(); + ResultSetMetaData rsmd = resultSet.getMetaData(); + while (resultSet.next()) { + JSONObject pgStatUserIndexesOutputPerRecord = new JSONObject(); + for (int i = 1; i <= rsmd.getColumnCount(); i++) { + pgStatUserIndexesOutputPerRecord.put( + rsmd.getColumnName(i), + resultSet.getString(i) + ); + } + pgStatUserIndexesOutputs.put(pgStatUserIndexesOutputPerRecord); + } + } + return pgStatUserIndexesOutputs; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeaturebenchAdditionalResults.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeaturebenchAdditionalResults.java new file mode 100644 index 000000000..4a8efee2e --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/FeaturebenchAdditionalResults.java @@ -0,0 +1,28 @@ +package com.oltpbenchmark.benchmarks.featurebench; + +import org.json.JSONObject; +import java.util.List; + + +public class FeaturebenchAdditionalResults { + List jsonResultsList; + JSONObject metaDataJson = new JSONObject(); + + public List getJsonResultsList() { + return jsonResultsList; + } + + public void setJsonResultsList(List jsonResultsList) { + this.jsonResultsList = jsonResultsList; + + } + + public JSONObject getMetaDataJson() { + return metaDataJson; + } + + public void setMetaDataJson(JSONObject metaDataJson) { + this.metaDataJson = metaDataJson; + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/Flowchart.jpg b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/Flowchart.jpg new file mode 100644 index 000000000..931e69a7d Binary files /dev/null and b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/Flowchart.jpg differ diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/Readme.md b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/Readme.md new file mode 100644 index 000000000..fa6693308 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/Readme.md @@ -0,0 +1,151 @@ +## Featurebench:- + + +### Flowchart +![Alt text](Flowchart.jpg?raw=true "Optional Title") + +### Quickstart + +To clone and build BenchBase using the `yugabyte` profile:- + +```bash +git clone --depth 1 https://github.com/yugabyte/benchbase.git +cd benchbase +./mvnw clean package -P yugabyte +``` + +This produces artifacts in the `target` folder, which can be extracted:- + +```bash +cd target +tar xvzf benchbase-yugabyte.tgz +cd benchbase-yugabyte +``` + +Inside this folder, you can run microbenchmarks using featurebench. + +Eg:- + +```bash +java -jar benchbase.jar -b featurebench -c config/yugabyte/demo/featurebench_santanu_t1_10_10k.yaml --create=true --load=true --execute=true +``` + + +### Different ways of running :- + +**Case 1**: When create, load and execute phase are taken from YAML. + +Eg:- +```bash +java -jar benchbase.jar -b featurebench -c config/yugabyte/demo/featurebench_santanu_t1_10_10k.yaml --create=true --load=true --execute=true +``` + +**Case 2**: When the user writes the create, load and execute phases themseleves (overriding the create, loadOnce & executeOnce of YBMicrobenchmark class). + +User has to include their own customworkload class extending abstract class YBMicroBenchmark. + +In case of executeOnce the workload is executed only once(single threaded). + +Eg:- +```bash +java -jar benchbase.jar -b featurebench -c config/yugabyte/demo/featurebench_scan_sonal.yaml --create=true --load=true --execute=true +``` + +**Case 3**: +When the user writes the create, load and execute phases themseleves (overriding the create, loadOnce & execute of YBMicrobenchmark class). + +User has to include their own customworkload class extending abstract class YBMicroBenchmark. + +In case of execute the workload is executed multiple times(multithreaded). +```bash +java -jar benchbase.jar -b featurebench -c config/yugabyte/demo/featurebench_microbenchmark1_sonal.yaml --create=true --load=true --execute=true +``` + +### YAML Config +| Key | Description | +|---------------|------------------------------------------------------------------------------------------------------------------| +| createdb | To make databases with additional properties. DDL's for database to be written here(eg. for colocated property). | + | create | Has DDL's for create phase from YAML. | +| loadRules | Has key/value for table name, util and parameters for util functions. | +| executeRules | Has key/value for workload name and their details (parallel run names,weights and queries+bindings). | +| cleanup | Has DDL's for cleaning up tables from YAML. | +| execute | True/false (User writes their own execute Rules in execute() of customworkload class). | +| setAutoCommit | True/False | + + +NOTE :- +1. `properties: {}` in YAML ( under `microbenchmark/properties`) implies user has made their own customworkload class overriding the create(), loadOnce and executeOnce() of YBMicrobenchmark abstract class. +2. If you are using `execute` or `executeOnce` in YAML set the flag `setAutoCommit` to `false`. +### Utility Functions:- + +Utility functions are present inside the folder :- +`src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils` + +| Name | Description | Parameters | Parameter Type | +|----------------------------|--------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|----------------------------| +| CurrentTime | Returns SQL TIMESTAMP value. | None | None | +| HashedPrimaryStringGen | Return unique md5 hash which is generated based on given number and length of hash | startNumber,length | Integer,Integer | +| HashedRandomString | Return random md5 hash which is generated based on given range and length of hash | minimum,maximum,length | Integer,Integer,Integer | +| OneNumberFromArray | Returns a number randomly from a predefined array of numbers passed by user. | listOfIntegers | List of Integers | +| OneStringFromArray | Returns a string randomly from a predefined array of strings passed by user. | list of str | List of Strings | +| OneUUIDFromArray | Returns a UUID randomly from a predefined array of UUIDs passed by user. | list of str | List of Strings | +| PrimaryDateGen | Generates unique date based on given total no. of unique dates required | totalUniqueDates | Integer | +| PrimaryFloatGen | Unique Float Generator between given range with decimal points. | lowerRange,upperRange,decimalPoint | Integer,Integer,Integer | +| PrimaryIntGen | Integer Primary key generator between a range.(sequential incremental keys generated). | lowerRange,upperRange | Integer,Integer | +| RandomUniqueIntGen | Generated random integer from lower range to upper range and all of them are unique. | lowerRange,upperRange | Integer,Integer | +| PrimaryStringGen | String Integer Primary key generator starting from a numeric no.(sequential incremental numeric strings generated). | startNumber,desiredLength | Integer,Integer | +| PrimaryIntRandomForExecutePhase | Generates Random unique int based on given range | lowerRange,upperRange | Integer,Integer | +| RandomAString | Returns a random alphabetic string with length in range [minimumlength,maximumlength]. | minimumLength,maximumLength | Integer,Integer | +| RandomBoolean | Returns a random boolean value. | None | None | +| RandomBytea | Returns returns a random hexadecimal string with length in range [minimumlength,maximumlength] | minimumLength,maximumLength | Integer,Integer | +| RandomDate | Returns a random date string in range [yearlowerBound,yearupperBound] | yearlowerBound,yearupperBound | Integer,Integer | +| RandomInt | Returns a random int value between minimum and maximum (inclusive). | minimum,maximum | Integer,Integer | +| CyclicSeqIntGen | Returns values between lower bound and upper bound including these bounds and repeats the sequence in cyclic way. | lowerRange, upperRange | Integer, Integer | +| RandomFloat | Returns a random Float value between given range and specified decimal point | minimum,maximum,decimalPoint | Integer,Integer,Integer | +| RandomJson | Returns a random json with pre-defined number of fields, size of values, level of nestedness(optional - nestedness=1 for now) | fields,valueLength,nestedness | Integer,Integer,Integer | +| RandomLong | Returns a random long value between minimum and maximum (inclusive) | minimum, maximum | Long,Long | +| RandomNoWithDecimalPoints | Returns a random double in the range[minimum,maximum] with fixed decimal places. | lowerBound,upperBound,decimalPoints | Integer,Integer,Integer | +| RandomNstring | Returns a random numeric string with length in range [minimumLength,maximumLength]. | minimumLength,maximumLength | Integer,Integer | +| RandomNumber | Returns a random number in range [minimum,maximum]. | minimum,maximum | Integer,Integer | +| RandomStringAlphabets | Returns a random alphabetic string of passed length. | desiredLength | Integer | +| RandomStringNumeric | Returns a random numeric string of passed length. | desiredLength | Integer | +| RandomUUID | Returns a random UUID | None | None | +| RowRandomBoundedInt | Returns a random int in the range[lowValue,highValue] | lowValue,highValue | Integer,Integer | +| RowRandomBoundedLong | Returns a random long in the range[lowValue,highValue] | lowValue,highValue | Long,Long | +| RandomDateBtwYears | Returns a random date in the range[yearLowerBound,yearUpperBound] | yearLowerBound,yearUpperBound | Integer,Integer | +| RandomPKString | Returns a random Primary key of String type in range [startNumber, endNumber] of desired length.(extra characters appended with 'a') | startNumber,endNumber,desiredLength | Integer,Integer,Integer | +| RandomTextArrayGen | Returns an array of string with length lies between minimum and maximum . | arraySize, minLength,maxLength | Integer,Integer,Integer | +| RandomTimestamp | Returns a random Timestamp which are determinsitic based on total no. of unique timestamps required | totalTimestamps | Integer | +| RandomTimestampWithoutTimeZone | Returns a random Timestamp without timezone which are determinsitic based on total no. of unique timestamps required | totalTimestamps | Integer | +| RandomTimestampWithTimeZone | Returns a random Timestamp with timezone which are determinsitic based on total no. of unique timestamps required | totalTimestamps | Integer | +| RandomTimestampWithTimezoneBetweenDates | Returns a random Timestamp with timezone between the dates provided. | start date, end date | String(date), string(date) | +| RandomTimestampWithTimezoneBtwMonths | Returns a random Timestamp with timezone between months of the same year | year, start month, end month | Integer, Integer, Integer | +| RandomUniqueCyclicIntGen | Returns random integers in [lowerRange, upperRange] (inclusive). Each value is visited exactly once per pass in random order; the list is re-shuffled when exhausted. Each value is returned `period` consecutive times before advancing (period defaults to 1). | lowerRange, upperRange, period (optional) | Integer, Integer, Integer | + + +### Results:- + +The results for each YAML config run can be found inside the `results` folder. + +Serial runs inside a YAML have separate sub-folders inside `results` folder with names same as either run name(if provided) or timestamp of run. + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/YBMicroBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/YBMicroBenchmark.java new file mode 100644 index 000000000..a38bb03ff --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/YBMicroBenchmark.java @@ -0,0 +1,51 @@ +package com.oltpbenchmark.benchmarks.featurebench; + +import com.oltpbenchmark.api.BenchmarkModule; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; + +import java.sql.Connection; +import java.sql.SQLException; + +public abstract class YBMicroBenchmark { + public boolean loadOnceImplemented = false; + public boolean executeOnceImplemented = false; + + public boolean afterLoadImplemented = false; + + public boolean beforeLoadImplemented = false; + + + public HierarchicalConfiguration config; + + public YBMicroBenchmark(HierarchicalConfiguration config) { + this.config = config; + } + + public void create(Connection conn) throws SQLException { + } + + public void cleanUp(Connection conn) throws SQLException { + } + + public void loadOnce(Connection conn) throws SQLException{ + } + + public void executeOnce(Connection conn, BenchmarkModule benchmarkModule) throws SQLException { + } + public void executeOnce(Connection conn) throws SQLException { + } + + + public void afterLoad(Connection conn) throws SQLException { + } + + public void execute(Connection conn) throws SQLException { + } + + public void beforeLoad(Connection conn) throws SQLException { + } + +} + + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/ColocatedWithPK.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/ColocatedWithPK.java new file mode 100644 index 000000000..f96f1d69e --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/ColocatedWithPK.java @@ -0,0 +1,41 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + +public class ColocatedWithPK extends YBMicroBenchmark { + public final static Logger LOG = Logger.getLogger(com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkImplSonal.class); + + public ColocatedWithPK(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + } + + public void loadOnce(Connection conn) throws SQLException { + + String insertStmt = "call insert_demo(10000);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + stmt.execute(); + stmt.close(); + + } + + public void executeOnce(Connection conn) throws SQLException { + String insertStmt1 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1000001,1100000) n;"; + Statement stmtObj = conn.createStatement(); + stmtObj.execute(insertStmt1); + String insertStmt2 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1100001,1200000) n;"; + stmtObj.execute(insertStmt2); + stmtObj.close(); + } + +} + + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/CreateAndDeleteTables.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/CreateAndDeleteTables.java new file mode 100644 index 000000000..a30bf30a9 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/CreateAndDeleteTables.java @@ -0,0 +1,52 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; + +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; + +public class CreateAndDeleteTables extends YBMicroBenchmark { + + public CreateAndDeleteTables(HierarchicalConfiguration config) { + super(config); + } + + @Override + public void create(Connection conn) throws SQLException { + Statement stmtObj = conn.createStatement(); + if (config.getBoolean("/testDrop")) { + for (int i = 0; i < config.getInt("/numTables"); i++) { + stmtObj.execute("create table a" + i); + } + } + } + + @Override + public void cleanUp(Connection conn) throws SQLException { + Statement stmtObj = conn.createStatement(); + if (config.getBoolean("/testCreate")) { + for (int i = 0; i < config.getInt("/numTables"); i++) { + stmtObj.execute("drop table a" + i); + } + } + } + + @Override + public void executeOnce(Connection conn) throws SQLException { + Statement stmtObj = conn.createStatement(); + if (config.getBoolean("/testCreate")) { + for (int i = 0; i < config.getInt("/numTables"); i++) { + stmtObj.execute("create table a" + i); + } + } + if (config.getBoolean("/testDrop")) { + for (int i = 0; i < config.getInt("/numTables"); i++) { + stmtObj.execute("drop table a" + i); + } + } + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/PointQuery.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/PointQuery.java new file mode 100644 index 000000000..1fc63978e --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/PointQuery.java @@ -0,0 +1,53 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.api.Procedure.UserAbortException; +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; + +import java.sql.*; +import java.util.Random; + +public class PointQuery extends YBMicroBenchmark { + + private Statement stmtObj = null; + + public PointQuery(HierarchicalConfiguration config) { + super(config); + } + + @Override + public void create(Connection conn) throws SQLException { + stmtObj = conn.createStatement(); + stmtObj.execute("create table t1(a int primary key, b int)"); + } + + @Override + public void cleanUp(Connection conn) throws SQLException { + stmtObj = conn.createStatement(); + stmtObj.execute("drop table t1"); + } + + @Override + public void loadOnce(Connection conn) throws SQLException { + stmtObj = conn.createStatement(); + stmtObj.execute("insert into t1 select generate_series a, generate_series b from generate_series(1,100000)"); + } + + + @Override + public void execute(Connection conn) throws SQLException { + + Random random = new Random(); + int a = random.ints(1, 100000).findAny().getAsInt(); + PreparedStatement stmt = conn.prepareStatement("select * from t1 where a = ?"); + stmt.setLong(1, a); + try (ResultSet result = stmt.executeQuery()) { + if (!result.next()) { + throw new UserAbortException("msg"); + } + + } + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/TestAfterLoad.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/TestAfterLoad.java new file mode 100644 index 000000000..419e280b9 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/TestAfterLoad.java @@ -0,0 +1,96 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import com.oltpbenchmark.benchmarks.featurebench.utils.PrimaryIntGen; +import com.oltpbenchmark.benchmarks.featurebench.utils.RandomAString; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.lang.reflect.InvocationTargetException; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + +import java.util.Arrays; + + +public class TestAfterLoad extends YBMicroBenchmark { + + public final static Logger LOG = Logger.getLogger(TestAfterLoad.class); + + public TestAfterLoad(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + this.afterLoadImplemented = true; + } + + @Override + public void create(Connection conn) throws SQLException { + try { + Statement stmtObj = conn.createStatement(); + LOG.info("Recreating tables if already exists"); + stmtObj.execute("DROP TABLE IF EXISTS categories cascade;"); + stmtObj.execute("CREATE TABLE categories(categoryId int NOT NULL, categoryName varchar(100) NOT NULL,PRIMARY KEY (categoryId));"); + stmtObj.execute("DROP TABLE IF EXISTS products;"); + stmtObj.execute("CREATE TABLE products(productId int NOT NULL,productName varchar(100) NOT NULL, PRIMARY KEY (productId));"); + stmtObj.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + public void loadOnce(Connection conn) throws SQLException { + + PrimaryIntGen pk = new PrimaryIntGen(Arrays.asList(1, 50)); + RandomAString randomAstring = new RandomAString(Arrays.asList(3, 5)); + int batchSize = 10; + String insertStmt1 = "INSERT INTO categories(categoryId,categoryName) VALUES (?,?);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt1); + int currentBatchSize = 0; + for (int i = 0; i < 50; i++) { + stmt.setObject(1, pk.run()); + try { + stmt.setObject(2, randomAstring.run()); + } catch (ClassNotFoundException | InvocationTargetException | NoSuchMethodException | + InstantiationException | IllegalAccessException e) { + throw new RuntimeException(e); + } + currentBatchSize += 1; + stmt.addBatch(); + if (currentBatchSize == batchSize) { + stmt.executeBatch(); + currentBatchSize = 0; + } + } + pk = new PrimaryIntGen(Arrays.asList(1, 50)); + String insertStmt2 = "INSERT INTO products(productId,productName) VALUES (?,?);"; + stmt = conn.prepareStatement(insertStmt2); + currentBatchSize = 0; + for (int i = 0; i < 50; i++) { + stmt.setObject(1, pk.run()); + try { + stmt.setObject(2, randomAstring.run()); + } catch (ClassNotFoundException | InvocationTargetException | NoSuchMethodException | + InstantiationException | IllegalAccessException e) { + throw new RuntimeException(e); + } + currentBatchSize += 1; + stmt.addBatch(); + if (currentBatchSize == batchSize) { + stmt.executeBatch(); + currentBatchSize = 0; + } + } + stmt.close(); + } + + @Override + public void afterLoad(Connection conn) throws SQLException { + System.out.println("In after load of user"); + Statement stmtObj = conn.createStatement(); + stmtObj.execute("ALTER TABLE products add column categoryId int constraint fk_category_categoryId REFERENCES categories(categoryId);"); + stmtObj.close(); + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBDefaultMicroBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBDefaultMicroBenchmark.java new file mode 100644 index 000000000..915976cef --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBDefaultMicroBenchmark.java @@ -0,0 +1,53 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.List; + + +public class YBDefaultMicroBenchmark extends YBMicroBenchmark { + private static final Logger LOG = LoggerFactory.getLogger(YBDefaultMicroBenchmark.class); + + public YBDefaultMicroBenchmark(HierarchicalConfiguration config) { + super(config); + if (!config.configurationsAt("executeOnce").isEmpty()) { + this.executeOnceImplemented = true; + } + } + + @Override + public void executeOnce(Connection conn, BenchmarkModule benchmarkModule) throws SQLException { + List> executeOnceBlocks = config.configurationsAt("executeOnce"); + if (executeOnceBlocks.isEmpty()) { + return; + } + + Statement stmtObj = conn.createStatement(); + long start = System.currentTimeMillis(); + + for (HierarchicalConfiguration block : executeOnceBlocks) { + List> runItems = block.configurationsAt("run"); + for (HierarchicalConfiguration runItem : runItems) { + List> queries = runItem.configurationsAt("queries"); + for (HierarchicalConfiguration queryConfig : queries) { + String query = queryConfig.getString("query"); + if (query != null && !query.isEmpty()) { + stmtObj.execute(query); + } + } + } + } + + long end = System.currentTimeMillis(); + LOG.info("Elapsed time in executeOnce phase: {} milliseconds", end - start); + stmtObj.close(); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkImplSonal.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkImplSonal.java new file mode 100644 index 000000000..125d686c2 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkImplSonal.java @@ -0,0 +1,120 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import com.oltpbenchmark.benchmarks.featurebench.utils.OneStringFromArray; +import com.oltpbenchmark.benchmarks.featurebench.utils.RandomAString; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.sql.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +public class YBMicroBenchmarkImplSonal extends YBMicroBenchmark { + + public final static Logger LOG = Logger.getLogger(YBMicroBenchmarkImplSonal.class); + + public YBMicroBenchmarkImplSonal(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + } + + @Override + public void create(Connection conn) throws SQLException { + try { + Statement stmtObj = conn.createStatement(); + LOG.info("Recreating tables if already exists"); + stmtObj.executeUpdate("DROP TABLE IF EXISTS distributors;"); + stmtObj.execute("DROP SEQUENCE IF EXISTS serial_no;"); + stmtObj.execute("CREATE SEQUENCE serial_no increment 1 start 1;"); + stmtObj.execute("CREATE TABLE distributors(did DECIMAL(5) DEFAULT NEXTVAL('serial_no'), " + + "dname varchar(40) DEFAULT 'Lusofilms');"); + + stmtObj.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + + public void loadOnce(Connection conn) throws SQLException { + + RandomAString randomAstring = new RandomAString(Arrays.asList(1, 20)); + List vals = new ArrayList<>(Arrays.asList("luso films", "Associated Computing, Inc", "XYZ Widgets", "Gizmo Transglobal", "Redline GmbH", "Acme Corporation")); + int batchSize = 100; + Random random = new Random(); + String insertStmt = "INSERT INTO distributors (dname) VALUES (?);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + int currentBatchSize = 0; + for (int i = 0; i < 500; i++) { + stmt.setObject(1, vals.get(random.nextInt(vals.size()))); + currentBatchSize += 1; + stmt.addBatch(); + if (currentBatchSize == batchSize) { + stmt.executeBatch(); + currentBatchSize = 0; + } + } + for (int i = 0; i < 500; i++) { + try { + stmt.setObject(1, randomAstring.run()); + } catch (Exception ex) { + ex.printStackTrace(); + } + currentBatchSize += 1; + stmt.addBatch(); + if (currentBatchSize == batchSize) { + stmt.executeBatch(); + currentBatchSize = 0; + } + } + if (currentBatchSize != 0) { + stmt.executeBatch(); + } + } + + public void execute(Connection conn) throws SQLException { + + String insertStmt = "INSERT INTO distributors (dname) VALUES (?);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + // Random String insertion + RandomAString randomAstring = new RandomAString(Arrays.asList(1, 20)); + for (int i = 1; i <= 20; i++) { + try { + stmt.setObject(1, randomAstring.run()); + stmt.addBatch(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + stmt.executeBatch(); + // Name in enum insertion + OneStringFromArray str = new OneStringFromArray(Arrays.asList("luso films", "Associated Computing, Inc", "XYZ Widgets", "Gizmo Transglobal", "Redline GmbH", "Acme Corporation")); + for (int i = 1; i <= 20; i++) { + try { + stmt.setObject(1, str.run()); + stmt.addBatch(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + stmt.executeBatch(); + } + +/* public void cleanUp(Connection conn) throws SQLException { + try { + Statement stmtObj = conn.createStatement(); + LOG.info("\n=======DROP ALL THE TABLES======="); + stmtObj.executeUpdate("DROP TABLE distributors"); + LOG.info("\n=======TABLES ARE SUCCESSFULLY DROPPED FROM THE DATABASE=======\n"); + stmtObj.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + }*/ +} + + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkScansSonal.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkScansSonal.java new file mode 100644 index 000000000..f84328901 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkScansSonal.java @@ -0,0 +1,50 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; + +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; + + +public class YBMicroBenchmarkScansSonal extends YBMicroBenchmark { + public final static Logger LOG = Logger.getLogger(com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkImplSonal.class); + + public YBMicroBenchmarkScansSonal(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + } + + @Override + public void create(Connection conn) throws SQLException { + try { + Statement stmtObj = conn.createStatement(); + LOG.info("Recreating tables if already exists"); + stmtObj.executeUpdate("DROP TABLE IF EXISTS demoScans;"); + stmtObj.execute("CREATE TABLE demoScans(num numeric,id int);"); + stmtObj.execute("CREATE INDEX demoid ON demoScans(num);"); + stmtObj.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + public void loadOnce(Connection conn) throws SQLException{ + + String insertStmt = "INSERT INTO demoScans SELECT random() * 1000, generate_series(1, 1000);"; + Statement stmtObj = conn.createStatement(); + stmtObj.execute(insertStmt); + + } + public void executeOnce(Connection conn)throws SQLException{ + String selectStmt = "SELECT * from demoScans;"; + Statement stmtObj = conn.createStatement(); + stmtObj.execute(selectStmt); + + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex0.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex0.java new file mode 100644 index 000000000..57f5f520f --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex0.java @@ -0,0 +1,40 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + + +public class YBMicroBenchmarkWriteImpactWithExtraIndex0 extends YBMicroBenchmark { + public final static Logger LOG = Logger.getLogger(com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkImplSonal.class); + + public YBMicroBenchmarkWriteImpactWithExtraIndex0(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + } + + public void loadOnce(Connection conn) throws SQLException { + + String insertStmt = "call insert_demo(10000);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + stmt.execute(); + stmt.close(); + + } + + public void executeOnce(Connection conn) throws SQLException { + String insertStmt1 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1000001,1100000) n;"; + Statement stmtObj = conn.createStatement(); + stmtObj.execute(insertStmt1); + String insertStmt2 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1100001,1200000) n;"; + stmtObj.execute(insertStmt2); + stmtObj.close(); + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex1.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex1.java new file mode 100644 index 000000000..835c21c32 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex1.java @@ -0,0 +1,41 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + + +public class YBMicroBenchmarkWriteImpactWithExtraIndex1 extends YBMicroBenchmark { + public final static Logger LOG = Logger.getLogger(com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkImplSonal.class); + + public YBMicroBenchmarkWriteImpactWithExtraIndex1(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + } + + public void loadOnce(Connection conn) throws SQLException { + + String insertStmt = "call insert_demo(10000);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + stmt.execute(); + stmt.close(); + + } + + public void executeOnce(Connection conn) throws SQLException { + String insertStmt1 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1000001,1100000) n;"; + Statement stmtObj = conn.createStatement(); + stmtObj.execute(insertStmt1); + String insertStmt2 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1100001,1200000) n;"; + stmtObj.execute(insertStmt2); + stmtObj.close(); + + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex10.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex10.java new file mode 100644 index 000000000..293e34a42 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex10.java @@ -0,0 +1,40 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + + +public class YBMicroBenchmarkWriteImpactWithExtraIndex10 extends YBMicroBenchmark { + public final static Logger LOG = Logger.getLogger(com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkImplSonal.class); + + public YBMicroBenchmarkWriteImpactWithExtraIndex10(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + } + + public void loadOnce(Connection conn) throws SQLException { + + String insertStmt = "call insert_demo(10000);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + stmt.execute(); + stmt.close(); + + } + + public void executeOnce(Connection conn) throws SQLException { + String insertStmt1 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1000001,1100000) n;"; + Statement stmtObj = conn.createStatement(); + stmtObj.execute(insertStmt1); + String insertStmt2 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1100001,1200000) n;"; + stmtObj.execute(insertStmt2); + stmtObj.close(); + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex5.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex5.java new file mode 100644 index 000000000..9264f7730 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/YBMicroBenchmarkWriteImpactWithExtraIndex5.java @@ -0,0 +1,41 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload; + + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.log4j.Logger; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + + +public class YBMicroBenchmarkWriteImpactWithExtraIndex5 extends YBMicroBenchmark { + public final static Logger LOG = Logger.getLogger(com.oltpbenchmark.benchmarks.featurebench.customworkload.YBMicroBenchmarkImplSonal.class); + + public YBMicroBenchmarkWriteImpactWithExtraIndex5(HierarchicalConfiguration config) { + super(config); + this.loadOnceImplemented = true; + } + + public void loadOnce(Connection conn) throws SQLException { + + String insertStmt = "call insert_demo(10000);"; + PreparedStatement stmt = conn.prepareStatement(insertStmt); + stmt.execute(); + stmt.close(); + + } + + public void executeOnce(Connection conn) throws SQLException { + String insertStmt1 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1000001,1100000) n;"; + Statement stmtObj = conn.createStatement(); + stmtObj.execute(insertStmt1); + String insertStmt2 = "insert into demo (id, col1, col2, col3, col4,col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) select n, n, n+100, (n%100)+1, (n%1000)+1, 'aaa'||(n%1000)+1, '2022-12-10', n%50, n*10, 'bbb'||n, n%10, n*2, 'ccc'||(n%100), RANDOM()::INT::BOOLEAN, n, n from generate_series(1100001,1200000) n;"; + stmtObj.execute(insertStmt2); + stmtObj.close(); + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/batchinsert/BatchInsertPG.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/batchinsert/BatchInsertPG.java new file mode 100644 index 000000000..62fd84f0b --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/batchinsert/BatchInsertPG.java @@ -0,0 +1,65 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload.batchinsert; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public class BatchInsertPG extends YBMicroBenchmark { + private static final Logger LOG = LoggerFactory.getLogger(BatchInsertPG.class); + + public BatchInsertPG(HierarchicalConfiguration config) { + super(config); + this.executeOnceImplemented = true; + this.loadOnceImplemented = true; + } + + @Override + public void create(Connection conn) throws SQLException { + Statement stmtOBj = conn.createStatement(); + stmtOBj.executeUpdate("drop table if exists index_test_4;" + + "create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id));" + + "DROP PROCEDURE IF EXISTS insert_demo_hash;" + + "CREATE PROCEDURE insert_demo_hash(_numRows int)" + + " LANGUAGE plpgsql" + + " AS $$" + + " DECLARE" + + " BEGIN" + + " insert into index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) select n, n, n+100, (n%100)+1, (n%1000)+1, n%50, n*10, n%10, n*2, n, n, 'aaa'||(n%1000)+1, 'bbb'||n, 'ccc'||(n%100), '2022-12-10', RANDOM()::INT::BOOLEAN from generate_series(1,_numRows) n;" + + " END;" + + " $$;" + + "call insert_demo_hash(1000000);"); + stmtOBj.close(); + } + + public void loadOnce(Connection conn) throws SQLException { + } + + public void executeOnce(Connection conn) throws SQLException { + String query = "insert into index_test_4 select n, n, n+100, (n%100)+1, (n%1000)+1, n%50, n*10, n%10, n*2, " + + "n, n, 'aaa'||(n%1000)+1, 'bbb'||n, 'ccc'||(n%100), '2022-12-10', RANDOM()::INT::BOOLEAN " + + "from generate_series(1000001,1100000) n;"; + int rows = conn.createStatement().executeUpdate(query); + LOG.info("Rows inserted: " + rows); + } + + @Override + public void cleanUp(Connection conn) throws SQLException { + String countQuery = "select count(*) from index_test_4"; + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(countQuery); + long count = 0; + while (rs.next()) { + count = rs.getLong(1); + } + LOG.info("Number of rows inserted are: " + count); + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/batchinsert/BatchInsertYB.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/batchinsert/BatchInsertYB.java new file mode 100644 index 000000000..36790866a --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/batchinsert/BatchInsertYB.java @@ -0,0 +1,65 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload.batchinsert; + +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public class BatchInsertYB extends YBMicroBenchmark { + private static final Logger LOG = LoggerFactory.getLogger(BatchInsertYB.class); + + public BatchInsertYB(HierarchicalConfiguration config) { + super(config); + this.executeOnceImplemented = true; + this.loadOnceImplemented = true; + } + + @Override + public void create(Connection conn) throws SQLException { + Statement stmtOBj = conn.createStatement(); + stmtOBj.executeUpdate("drop table if exists index_test_4;" + + "create table index_test_4 (id bigint, col_int_1 int, col_int_2 int, col_int_3 int, col_int_4 int, col_int_5 int, col_int_6 int, col_int_7 int, col_int_8 int, col_int_9 int, col_int_10 int, col_varchar_1 varchar(20), col_varchar_2 varchar(20), col_varchar_3 varchar(20), col_date text, col_boolean boolean, primary key (id asc));" + + "DROP PROCEDURE IF EXISTS insert_demo_hash;" + + "CREATE PROCEDURE insert_demo_hash(_numRows int)" + + " LANGUAGE plpgsql" + + " AS $$" + + " DECLARE" + + " BEGIN" + + " insert into index_test_4 (id, col_int_1, col_int_2, col_int_3, col_int_4, col_int_5, col_int_6, col_int_7, col_int_8, col_int_9, col_int_10, col_varchar_1, col_varchar_2, col_varchar_3, col_date, col_boolean) select n, n, n+100, (n%100)+1, (n%1000)+1, n%50, n*10, n%10, n*2, n, n, 'aaa'||(n%1000)+1, 'bbb'||n, 'ccc'||(n%100), '2022-12-10', RANDOM()::INT::BOOLEAN from generate_series(1,_numRows) n;" + + " END;" + + " $$;" + + "call insert_demo_hash(1000000);"); + stmtOBj.close(); + } + + public void loadOnce(Connection conn) throws SQLException { + } + + public void executeOnce(Connection conn) throws SQLException { + String query = "insert into index_test_4 select n, n, n+100, (n%100)+1, (n%1000)+1, n%50, n*10, n%10, n*2, " + + "n, n, 'aaa'||(n%1000)+1, 'bbb'||n, 'ccc'||(n%100), '2022-12-10', RANDOM()::INT::BOOLEAN " + + "from generate_series(1000001,1100000) n;"; + int rows = conn.createStatement().executeUpdate(query); + LOG.info("Rows inserted: " + rows); + } + + @Override + public void cleanUp(Connection conn) throws SQLException { + String countQuery = "select count(*) from index_test_4"; + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(countQuery); + long count = 0; + while (rs.next()) { + count = rs.getLong(1); + } + LOG.info("Number of rows inserted are: " + count); + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal1.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal1.java new file mode 100644 index 000000000..48f15d633 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal1.java @@ -0,0 +1,75 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload; + +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.utils.BulkloadUtils; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; + +public class Goal1 extends YBMicroBenchmark { + private static final Logger LOG = LoggerFactory.getLogger(Goal1.class); + String tableName; + int numOfColumns; + int numOfRows; + int indexCount; + String filePath; + int stringLength; + + boolean recreateCsvIfExists; + + public Goal1(HierarchicalConfiguration config) { + super(config); + this.executeOnceImplemented = true; + this.loadOnceImplemented = true; + this.tableName = config.getString("/tableName"); + this.numOfColumns = config.getInt("/columns"); + this.numOfRows = config.getInt("/rows"); + this.indexCount = config.getInt("/indexes"); + this.filePath = config.getString("/filePath"); + this.stringLength = config.getInt("/stringLength"); + this.recreateCsvIfExists = config.getBoolean("/recreateCsvIfExists", true); + } + + public void create(Connection conn) throws SQLException { + Statement stmtOBj = conn.createStatement(); + LOG.info("Recreate table if it exists"); + stmtOBj.executeUpdate(String.format("DROP TABLE IF EXISTS %s", this.tableName)); + stmtOBj.close(); + createTableAndIndexes(conn); + + if(!this.recreateCsvIfExists && (new File(this.filePath).exists())) { + LOG.info("Using existing CSV file."); + } + else { + LOG.info("Create CSV file with data"); + BulkloadUtils.createCSV(this.filePath, this.numOfRows, this.numOfColumns, this.stringLength); + } + } + + public void loadOnce(Connection conn) throws SQLException { + } + + public void executeOnce(Connection conn, BenchmarkModule benchmarkModule) throws SQLException { + BulkloadUtils.runCopyCommand(conn, this.tableName, this.filePath); + } + + public void createTableAndIndexes(Connection conn) { + + BulkloadUtils.createTable(conn, this.tableName, this.numOfColumns); + BulkloadUtils.createIndexes(conn, this.indexCount, this.tableName); + + } + + + @Override + public void cleanUp(Connection conn) throws SQLException { + BulkloadUtils.cleanUp(conn, this.tableName); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal2.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal2.java new file mode 100644 index 000000000..2cd33760e --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal2.java @@ -0,0 +1,86 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload; + +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.utils.BulkloadUtils; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; + +public class Goal2 extends YBMicroBenchmark { + + private static final Logger LOG = LoggerFactory.getLogger(Goal2.class); + + String tableName; + int numOfColumns; + int numOfRows; + int indexCount; + String filePath; + int stringLength; + + boolean create_index_before_load; + boolean create_index_after_load; + + boolean recreateCsvIfExists; + + public Goal2(HierarchicalConfiguration config) { + super(config); + this.executeOnceImplemented = true; + this.loadOnceImplemented = true; + this.tableName = config.getString("/tableName"); + this.numOfColumns = config.getInt("/columns"); + this.numOfRows = config.getInt("/rows"); + this.indexCount = config.getInt("/indexes"); + this.filePath = config.getString("/filePath"); + this.stringLength = config.getInt("/stringLength"); + this.create_index_before_load = config.getBoolean("/create_index_before_load"); + this.create_index_after_load = config.getBoolean("/create_index_after_load"); + this.recreateCsvIfExists = config.getBoolean("/recreateCsvIfExists", true); + } + + public void create(Connection conn) throws SQLException { + Statement stmtOBj = conn.createStatement(); + LOG.info("Recreate table if it exists"); + stmtOBj.executeUpdate(String.format("DROP TABLE IF EXISTS %s", this.tableName)); + stmtOBj.close(); + LOG.info("Creating table"); + BulkloadUtils.createTable(conn, this.tableName, this.numOfColumns); + if(!this.recreateCsvIfExists && (new File(this.filePath).exists())) + LOG.info("Using existing CSV file."); + else { + LOG.info("Create CSV file with data"); + BulkloadUtils.createCSV(this.filePath, this.numOfRows, this.numOfColumns, this.stringLength); + } + } + + public void loadOnce(Connection conn) throws SQLException { + } + + public void executeOnce(Connection conn, BenchmarkModule benchmarkModule) throws SQLException { + if (this.create_index_before_load && (this.indexCount > 0 && this.indexCount <= this.numOfColumns)) { + LOG.info("Creating indexes before load"); + BulkloadUtils.createIndexes(conn, this.indexCount, this.tableName); +// if(!conn.getAutoCommit()) conn.commit(); + LOG.info("Done creating indexes"); + } + BulkloadUtils.runCopyCommand(conn, this.tableName, this.filePath); +// if(!conn.getAutoCommit()) conn.commit(); + if (this.create_index_after_load && (this.indexCount > 0 && this.indexCount <= this.numOfColumns)) { + LOG.info("Creating indexes after load(index back-filling)"); + BulkloadUtils.createIndexes(conn, this.indexCount, this.tableName); + LOG.info("Done creating indexes(Index back-filling done)"); + } + } + + + @Override + public void cleanUp(Connection conn) throws SQLException { + BulkloadUtils.cleanUp(conn, this.tableName); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal3.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal3.java new file mode 100644 index 000000000..67b009ce6 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal3.java @@ -0,0 +1,68 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload; + +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.utils.BulkloadUtils; +import org.postgresql.copy.CopyManager; +import org.postgresql.core.BaseConnection; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.commons.lang3.RandomStringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public class Goal3 extends YBMicroBenchmark { + + private static final Logger LOG = LoggerFactory.getLogger(Goal3.class); + + String tableName; + int numOfColumns; + int numOfRows; + String filePath; + int stringLength; + + public Goal3(HierarchicalConfiguration config) { + super(config); + this.executeOnceImplemented = true; + this.loadOnceImplemented = true; + this.tableName = config.getString("/tableName"); + this.numOfColumns = config.getInt("/columns"); + this.numOfRows = config.getInt("/rows"); + this.filePath = config.getString("/filePath"); + this.stringLength = config.getInt("/stringLength"); + } + + public void create(Connection conn) throws SQLException { + Statement stmtOBj = conn.createStatement(); + LOG.info("Recreate table if it exists"); + stmtOBj.executeUpdate(String.format("DROP TABLE IF EXISTS %s", this.tableName)); + stmtOBj.close(); + LOG.info("Creating table"); + BulkloadUtils.createTable(conn, this.tableName, this.numOfColumns); + LOG.info("Create CSV file with data"); + BulkloadUtils.createCSV(this.filePath, this.numOfRows, this.numOfColumns, this.stringLength); + + } + + public void loadOnce(Connection conn) throws SQLException { + } + + public void executeOnce(Connection conn, BenchmarkModule benchmarkModule) throws SQLException { + BulkloadUtils.runCopyCommand(conn, this.tableName, this.filePath); + } + + @Override + public void cleanUp(Connection conn) throws SQLException { + BulkloadUtils.cleanUp(conn, this.tableName); + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal4.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal4.java new file mode 100644 index 000000000..978b74212 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/Goal4.java @@ -0,0 +1,68 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload; + +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.benchmarks.featurebench.YBMicroBenchmark; +import com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.utils.BulkloadUtils; +import org.postgresql.copy.CopyManager; +import org.postgresql.core.BaseConnection; +import org.apache.commons.configuration2.HierarchicalConfiguration; +import org.apache.commons.configuration2.tree.ImmutableNode; +import org.apache.commons.lang3.RandomStringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public class Goal4 extends YBMicroBenchmark { + + private static final Logger LOG = LoggerFactory.getLogger(Goal4.class); + + String tableName; + int numOfColumns; + int numOfRows; + String filePath; + int stringLength; + + public Goal4(HierarchicalConfiguration config) { + super(config); + this.executeOnceImplemented = true; + this.loadOnceImplemented = true; + this.tableName = config.getString("/tableName"); + this.numOfColumns = config.getInt("/columns"); + this.numOfRows = config.getInt("/rows"); + this.filePath = config.getString("/filePath"); + this.stringLength = config.getInt("/stringLength"); + } + + public void create(Connection conn) throws SQLException { + Statement stmtOBj = conn.createStatement(); + LOG.info("Recreate table if it exists"); + stmtOBj.executeUpdate(String.format("DROP TABLE IF EXISTS %s", this.tableName)); + stmtOBj.close(); + LOG.info("Creating table"); + BulkloadUtils.createTable(conn, this.tableName, this.numOfColumns); + LOG.info("Create CSV file with data"); + BulkloadUtils.createCSV(this.filePath, this.numOfRows, this.numOfColumns, this.stringLength); + } + + public void loadOnce(Connection conn) throws SQLException { + } + + public void executeOnce(Connection conn, BenchmarkModule benchmarkModule) throws SQLException { + BulkloadUtils.runCopyCommand(conn, this.tableName, this.filePath); + } + + @Override + public void cleanUp(Connection conn) throws SQLException { + BulkloadUtils.cleanUp(conn, this.tableName); + } + + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/utils/BulkloadUtils.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/utils/BulkloadUtils.java new file mode 100644 index 000000000..45f4eb187 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/customworkload/bulkload/utils/BulkloadUtils.java @@ -0,0 +1,110 @@ +package com.oltpbenchmark.benchmarks.featurebench.customworkload.bulkload.utils; + +import org.apache.commons.lang3.RandomStringUtils; +import org.postgresql.copy.CopyManager; +import org.postgresql.core.BaseConnection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +public class BulkloadUtils { + private static final Logger LOG = LoggerFactory.getLogger(BulkloadUtils.class); + + public static void createCSV(String filePath, int numOfRows, int numOfColumns, int stringLength) { + try { + FileOutputStream outputStream = new FileOutputStream(filePath); + + for (int i = 0; i < numOfRows; i++) { + StringBuilder row = new StringBuilder(); + row.append(i); + for (int j = 0; j < numOfColumns; j++) { + row.append(", "); + row.append(RandomStringUtils.random(stringLength, true, false)); + } + row.append("\n"); + outputStream.write(row.toString().getBytes()); + } + outputStream.close(); + LOG.info("CSV file {} created", filePath); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static void createTable(Connection conn, String tableName, int numOfColumns) { + StringBuilder createStmt = new StringBuilder(); + createStmt.append(String.format("CREATE TABLE %s (id INT, ", tableName)); + for (int i = 1; i <= numOfColumns; i++) { + createStmt.append(String.format("col%d TEXT ,", i)); + } + try { + if (conn.getMetaData().getUserName().equalsIgnoreCase("yugabyte")) { + createStmt.append("primary key (id asc) );"); + } else { + createStmt.append("primary key (id) );"); + } + + Statement stmt = conn.createStatement(); + stmt.execute(createStmt.toString()); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static void createIndexes(Connection conn, int indexCount, String tableName) { + List ddls = new ArrayList<>(); + for (int i = 0; i < indexCount; i++) { + ddls.add(String.format("CREATE INDEX idx%d on %s(col%d);", i + 1, tableName, i + 1)); + } + ddls.forEach(ddl -> { + try (Statement stmt = conn.createStatement()) { + stmt.execute(ddl); + } catch (SQLException e) { + throw new RuntimeException(e); + } + }); + } + + public static void runCopyCommand(Connection conn, String tableName, String filePath) { + try { + String copyCommand = String.format( + "COPY %s FROM STDIN (FORMAT CSV, HEADER false)", + tableName); + long rowsInserted = 0; + if (conn.getMetaData().getUserName().equalsIgnoreCase("yugabyte")) { + rowsInserted = new com.yugabyte.copy.CopyManager((com.yugabyte.core.BaseConnection) conn) + .copyIn(copyCommand, + new BufferedReader(new FileReader(filePath))); + } else { + rowsInserted = new CopyManager((BaseConnection) conn) + .copyIn(copyCommand, + new BufferedReader(new FileReader(filePath))); + } + LOG.info("Number of rows Inserted: {}", rowsInserted); + } catch (SQLException | IOException e) { + throw new RuntimeException(e); + } + } + + public static void cleanUp(Connection conn,String tableName) throws SQLException { + String countQuery = "select count(*) from " + tableName; + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(countQuery); + long count = 0; + while (rs.next()) { + count = rs.getLong(1); + } + LOG.info("Number of rows inserted are: " + count); + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/MD5hash.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/MD5hash.java new file mode 100644 index 000000000..9195c6d8c --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/MD5hash.java @@ -0,0 +1,39 @@ +package com.oltpbenchmark.benchmarks.featurebench.helpers; + +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +// Java program to calculate MD5 hash value +public class MD5hash { + public static String getMd5(String input) + { + try { + + // Static getInstance method is called with hashing MD5 + MessageDigest md = MessageDigest.getInstance("MD5"); + + // digest() method is called to calculate message digest + // of an input digest() return array of byte + byte[] messageDigest = md.digest(input.getBytes()); + + // Convert byte array into signum representation + BigInteger no = new BigInteger(1, messageDigest); + + // Convert message digest into hex value + StringBuilder hashtext = new StringBuilder(no.toString(16)); + while (hashtext.length() < 32) { + hashtext.insert(0, "0"); + } + return hashtext.toString(); + } + + // For specifying wrong message digest algorithms + catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } + + + +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/ParamsForUtilFunc.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/ParamsForUtilFunc.java new file mode 100644 index 000000000..f36c5d41a --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/ParamsForUtilFunc.java @@ -0,0 +1,15 @@ +package com.oltpbenchmark.benchmarks.featurebench.helpers; + +import java.util.ArrayList; + +public class ParamsForUtilFunc { + ArrayList parameters; + + public ParamsForUtilFunc(ArrayList parameters) { + this.parameters = parameters; + } + + public ArrayList getParameters() { + return parameters; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/SimpleExpressionEvaluator.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/SimpleExpressionEvaluator.java new file mode 100644 index 000000000..8f33ffbc3 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/SimpleExpressionEvaluator.java @@ -0,0 +1,365 @@ +package com.oltpbenchmark.benchmarks.featurebench.helpers; + +import java.time.LocalDate; +import java.util.Map; +import java.util.Stack; + +/** + * Lightweight expression evaluator for basic arithmetic, string, and date operations. + * Supports: +, -, *, /, %, parentheses, and named variable references. + * For LocalDate: integer operands represent days (e.g., "date + 5" adds 5 days) + * Optimized for performance with minimal overhead. + */ +public class SimpleExpressionEvaluator { + + /** + * Evaluates an expression with named variable context. + * + * @param expression The expression to evaluate (e.g., "param1 + 10") + * @param context Map of variable names to their values + * @return The evaluated result + */ + public static Object evaluate(String expression, Map context) { + if (expression == null || expression.trim().isEmpty()) { + throw new RuntimeException("Expression cannot be null or empty"); + } + + // Replace named references with their values + String processedExpr = replaceReferences(expression, context); + + // Check if it's a simple value (no operators) + if (isSimpleValue(processedExpr)) { + return parseValue(processedExpr); + } + + // Determine the type of operation based on what the expression actually uses + if (expressionUsesDateOperand(expression, context)) { + return evaluateDateExpression(expression, context); + } else if (containsStringOperands(processedExpr, context)) { + return evaluateStringExpression(processedExpr, context); + } else { + return evaluateNumericExpression(processedExpr); + } + } + + /** + * Replace named references with their actual values + */ + private static String replaceReferences(String expression, Map context) { + String result = expression; + + // Sort by length descending to avoid partial replacements + // e.g., "param10" should be replaced before "param1" + java.util.List sortedKeys = new java.util.ArrayList<>(context.keySet()); + sortedKeys.sort((a, b) -> Integer.compare(b.length(), a.length())); + + for (String key : sortedKeys) { + Object value = context.get(key); + if (value != null) { + // Replace whole word only (not part of another word) + result = result.replaceAll("\\b" + key + "\\b", + value instanceof String ? "\"" + value + "\"" : String.valueOf(value)); + } + } + + return result; + } + + private static boolean isSimpleValue(String expr) { + expr = expr.trim(); + return !expr.contains("+") && !expr.contains("-") && !expr.contains("*") + && !expr.contains("/") && !expr.contains("%") && !expr.contains("("); + } + + private static Object parseValue(String value) { + value = value.trim(); + + // String literal + if (value.startsWith("\"") && value.endsWith("\"")) { + return value.substring(1, value.length() - 1); + } + + // Try to parse as number + try { + if (value.contains(".")) { + return Double.parseDouble(value); + } else { + return Integer.parseInt(value); + } + } catch (NumberFormatException e) { + return value; // Return as string if not a number + } + } + + /** + * Check if the expression actually references a date variable from context. + * This is more precise than checking if any date exists in context. + */ + private static boolean expressionUsesDateOperand(String expression, Map context) { + // Check if any date variable from context is used in this expression + for (Map.Entry entry : context.entrySet()) { + if (entry.getValue() instanceof LocalDate) { + // Check if this date variable name appears in the expression + if (expression.matches(".*\\b" + entry.getKey() + "\\b.*")) { + return true; + } + } + } + return false; + } + + private static boolean containsStringOperands(String expr, Map context) { + // Check if expression contains string literals + if (expr.contains("\"")) { + return true; + } + + // Check if any referenced values are strings + for (Object value : context.values()) { + if (value instanceof String && expr.contains(String.valueOf(value))) { + return true; + } + } + + return false; + } + + /** + * Evaluate date expression. Supports adding/subtracting days from LocalDate. + * Format: "dateRef + days" or "dateRef - days" + * Example: "baseDate + 5" adds 5 days to baseDate + */ + private static Object evaluateDateExpression(String expression, Map context) { + expression = expression.trim(); + + // Find the date operand and numeric offset + LocalDate dateValue = null; + String dateVarName = null; + + // Find which variable in the expression is a LocalDate + for (Map.Entry entry : context.entrySet()) { + if (entry.getValue() instanceof LocalDate && expression.contains(entry.getKey())) { + dateValue = (LocalDate) entry.getValue(); + dateVarName = entry.getKey(); + break; + } + } + + if (dateValue == null) { + throw new RuntimeException("No LocalDate found in expression: " + expression); + } + + // Parse the operation: "dateVar + offset" or "dateVar - offset" + String remaining = expression.replace(dateVarName, "").trim(); + + if (remaining.isEmpty()) { + // Just the date reference, no operation + return dateValue; + } + + // Extract operator and offset + char operator = remaining.charAt(0); + if (operator != '+' && operator != '-') { + throw new RuntimeException("Invalid date operation. Only + and - are supported: " + expression); + } + + String offsetStr = remaining.substring(1).trim(); + int offset; + try { + offset = Integer.parseInt(offsetStr); + } catch (NumberFormatException e) { + throw new RuntimeException("Invalid day offset in expression: " + expression, e); + } + + // Apply the operation + if (operator == '+') { + return dateValue.plusDays(offset); + } else { + return dateValue.minusDays(offset); + } + } + + private static String evaluateStringExpression(String expression, Map context) { + // Simple string concatenation with + + StringBuilder result = new StringBuilder(); + String[] parts = expression.split("\\+"); + + for (int i = 0; i < parts.length; i++) { + String part = parts[i].trim(); + + // Remove quotes if present + if (part.startsWith("\"") && part.endsWith("\"")) { + result.append(part.substring(1, part.length() - 1)); + } else { + result.append(part); + } + } + + return result.toString(); + } + + /** + * Evaluate numeric expression using Shunting Yard algorithm + * Supports: +, -, *, /, %, parentheses + */ + private static Object evaluateNumericExpression(String expression) { + try { + // Tokenize + java.util.List tokens = tokenize(expression); + + // Convert to postfix notation using Shunting Yard + java.util.List postfix = toPostfix(tokens); + + // Evaluate postfix expression + return evaluatePostfix(postfix); + + } catch (Exception e) { + throw new RuntimeException("Failed to evaluate expression: " + expression, e); + } + } + + private static java.util.List tokenize(String expression) { + java.util.List tokens = new java.util.ArrayList<>(); + StringBuilder current = new StringBuilder(); + + for (int i = 0; i < expression.length(); i++) { + char c = expression.charAt(i); + + if (Character.isWhitespace(c)) { + continue; + } + + if (isOperator(c) || c == '(' || c == ')') { + if (current.length() > 0) { + tokens.add(current.toString()); + current = new StringBuilder(); + } + tokens.add(String.valueOf(c)); + } else { + current.append(c); + } + } + + if (current.length() > 0) { + tokens.add(current.toString()); + } + + return tokens; + } + + private static boolean isOperator(char c) { + return c == '+' || c == '-' || c == '*' || c == '/' || c == '%'; + } + + private static int precedence(String op) { + switch (op) { + case "+": + case "-": + return 1; + case "*": + case "/": + case "%": + return 2; + default: + return 0; + } + } + + private static java.util.List toPostfix(java.util.List tokens) { + java.util.List output = new java.util.ArrayList<>(); + Stack operators = new Stack<>(); + + for (String token : tokens) { + if (isNumeric(token)) { + output.add(token); + } else if (token.equals("(")) { + operators.push(token); + } else if (token.equals(")")) { + while (!operators.isEmpty() && !operators.peek().equals("(")) { + output.add(operators.pop()); + } + if (!operators.isEmpty()) { + operators.pop(); // Remove '(' + } + } else if (isOperator(token.charAt(0)) && token.length() == 1) { + while (!operators.isEmpty() && !operators.peek().equals("(") + && precedence(operators.peek()) >= precedence(token)) { + output.add(operators.pop()); + } + operators.push(token); + } + } + + while (!operators.isEmpty()) { + output.add(operators.pop()); + } + + return output; + } + + private static boolean isNumeric(String str) { + try { + Double.parseDouble(str); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + private static Object evaluatePostfix(java.util.List postfix) { + Stack stack = new Stack<>(); + + for (String token : postfix) { + if (isNumeric(token)) { + stack.push(Double.parseDouble(token)); + } else { + if (stack.size() < 2) { + throw new RuntimeException("Invalid expression"); + } + + double b = stack.pop(); + double a = stack.pop(); + double result; + + switch (token) { + case "+": + result = a + b; + break; + case "-": + result = a - b; + break; + case "*": + result = a * b; + break; + case "/": + if (b == 0) { + throw new RuntimeException("Division by zero"); + } + result = a / b; + break; + case "%": + result = a % b; + break; + default: + throw new RuntimeException("Unknown operator: " + token); + } + + stack.push(result); + } + } + + if (stack.size() != 1) { + throw new RuntimeException("Invalid expression"); + } + + double finalResult = stack.pop(); + + // Return as integer if it's a whole number + if (finalResult == Math.floor(finalResult) && !Double.isInfinite(finalResult)) { + return (int) finalResult; + } + + return finalResult; + } +} + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/UtilToMethod.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/UtilToMethod.java new file mode 100644 index 000000000..9a0d87b72 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/UtilToMethod.java @@ -0,0 +1,86 @@ +package com.oltpbenchmark.benchmarks.featurebench.helpers; + +import com.oltpbenchmark.benchmarks.featurebench.utils.BaseUtil; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; + +public class UtilToMethod { + private BaseUtil clsInstance; + private String referenceName = null; + private boolean isExpression = false; + + public boolean isExpression() { + return isExpression; + } + + public void setExpression(boolean isExpression) { + this.isExpression = isExpression; + } + + public String getReferenceName() { + return referenceName; + } + + public void setReferenceName(String referenceName) { + this.referenceName = referenceName; + } + + public BaseUtil getInstance() { + return clsInstance; + } + public UtilToMethod(Object util, Object params, int workerId, int totalWorkers, String referenceName) { + String className = "com.oltpbenchmark.benchmarks.featurebench.utils." + util; + try { + Class cls = Class.forName(className); + if (params == null) { + params = new ArrayList<>(List.of()); + } + this.clsInstance = (BaseUtil) cls.getDeclaredConstructor( + List.class, int.class, int.class).newInstance((List) params, workerId, totalWorkers); + this.referenceName = referenceName; + + if (util.equals("ExpressionEval")) { + this.isExpression = true; + } + } catch (ClassNotFoundException | NoSuchMethodException e) { + e.printStackTrace(); + throw new RuntimeException(String.format("Oops! Are you sure that " + + "you provided the right utility function name: %s ? ", util)); + } catch (InvocationTargetException | InstantiationException | + IllegalAccessException e) { + e.printStackTrace(); + throw new RuntimeException(); + } + } + + public UtilToMethod(Object util, Object params, String referenceName) { + String className = "com.oltpbenchmark.benchmarks.featurebench.utils." + util; + try { + Class cls = Class.forName(className); + if (params == null) { + params = new ArrayList<>(List.of()); + } + this.clsInstance = (BaseUtil) cls.getDeclaredConstructor( + List.class).newInstance((List) params); + this.referenceName = referenceName; + + if (util.equals("ExpressionEval")) { + this.isExpression = true; + } + } catch (ClassNotFoundException | NoSuchMethodException e) { + throw new RuntimeException(String.format("Oops! Are you sure that " + + "you provided the right utility function name: %s ? ", util)); + } catch (InvocationTargetException | InstantiationException | + IllegalAccessException e) { + e.printStackTrace(); + throw new RuntimeException(); + } + } + + public Object get() throws InvocationTargetException, IllegalAccessException, + ClassNotFoundException, NoSuchMethodException, InstantiationException { + return this.clsInstance.run(); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/UtilityFunc.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/UtilityFunc.java new file mode 100644 index 000000000..021f917af --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/helpers/UtilityFunc.java @@ -0,0 +1,23 @@ +package com.oltpbenchmark.benchmarks.featurebench.helpers; + +import java.util.ArrayList; + +public class UtilityFunc { + + private final String name; + private final ArrayList params; + + public UtilityFunc(String name, ArrayList params) { + this.name = name; + + this.params = params; + } + + public ArrayList getParams() { + return params; + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/procedures/FeatureBench.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/procedures/FeatureBench.java new file mode 100644 index 000000000..78e27795f --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/procedures/FeatureBench.java @@ -0,0 +1,67 @@ +/* + * Copyright 2020 by OLTPBenchmark Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.oltpbenchmark.benchmarks.featurebench.procedures; + +import com.oltpbenchmark.api.Procedure; +import com.oltpbenchmark.api.SQLStmt; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +/** + * The actual FeatureBench implementation + * + */ +public class FeatureBench extends Procedure { + private static final Logger LOG = LoggerFactory.getLogger(FeatureBench.class); + + + // The query only contains a semi-colon + // That is enough for the DBMS to have to parse it and do something + public final SQLStmt featureBenchStmt = new SQLStmt(";"); + + public void run(Connection conn) { + try (PreparedStatement stmt = this.getPreparedStatement(conn, featureBenchStmt)) { + // IMPORTANT: + // Some DBMSs will throw an exception here when you execute + // a query that does not return a result. So we are just + // going to catch the exception and ignore it. If you are porting + // a new DBMS to this benchmark, then you should disable this + // exception here and check whether it is actually working + // correctly. + + if (stmt.execute()) { + ResultSet r = stmt.getResultSet(); + while (r.next()) { + // Do nothing + } + r.close(); + } + + } catch (Exception ex) { + // This error should be something like "No results were returned by the query." + if (LOG.isDebugEnabled()) { + LOG.debug("Exception for FeatureBench query. This may be expected!", ex); + } + } + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/BaseUtil.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/BaseUtil.java new file mode 100644 index 000000000..d3a6f7426 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/BaseUtil.java @@ -0,0 +1,10 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; + +public interface BaseUtil { + + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException; + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CurrentTime.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CurrentTime.java new file mode 100644 index 000000000..5372c8123 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CurrentTime.java @@ -0,0 +1,33 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.sql.Timestamp; +import java.util.List; + +/* Description :- + SQL TIMESTAMP value. + It adds the ability to hold the SQL TIMESTAMP fractional seconds value, by allowing the specification of fractional seconds to a precision of nanoseconds. + Constructs a Timestamp object using a milliseconds time value.(Can be used for DATE in SQL schema) + Params:- Empty list + Returns :- year-month-date hour:minutes:seconds.nanoseconds + Eg: 2022-10-06 07:41:21.887 + */ + +public class CurrentTime implements BaseUtil { + + public CurrentTime(List values) { + if (values.size() != 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + } + public CurrentTime(List values,int workerId, int totalWorkers) { + if (values.size() != 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + } + + public Object run() { + return new Timestamp(System.currentTimeMillis()); + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CyclicSeqIntGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CyclicSeqIntGen.java new file mode 100644 index 000000000..af78c87a1 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CyclicSeqIntGen.java @@ -0,0 +1,68 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + + +import java.util.List; + + +/* +Description :- Cyclic Sequential Integer Generator between a range. +Params : +1.int: lowerRange (values[0]) :- Lower Range. +2.int: upperRange (values[1]) :- Upper Range. + +Eg:- +lowerRange:- 1, upperRange: 10 +Return type (Integer) :- All values between 1 and 10 including these bounds and repeats the sequence in cyclic way. +Sample output : 1 2 3 4 5 6 7 8 9 10 1 2 3 4 ... +*/ + +public class CyclicSeqIntGen implements BaseUtil { + private final int upperRange; + private final int lowerRange; + private int currentValue; + + public CyclicSeqIntGen(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.currentValue = ((Number) values.get(0)).intValue() - 1; + this.upperRange = ((Number) values.get(1)).intValue(); + this.lowerRange = ((Number) values.get(0)).intValue(); + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + } + + public CyclicSeqIntGen(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + int divide = (((Number) values.get(1)).intValue() - ((Number) values.get(0)).intValue()) / totalWorkers; + this.currentValue = ((Number) values.get(0)).intValue() - 1 + divide * workerId; + int upperRangeTemp = (((Number) values.get(0)).intValue() + (divide) * (workerId + 1) + (workerId == 0 ? 0 : 1)); + this.upperRange = Math.min(upperRangeTemp, ((Number) values.get(1)).intValue()); + this.lowerRange = ((Number) values.get(0)).intValue() + divide * (workerId) + (workerId == 0 ? 0 : 1); + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + + } + + private int findNextHigherValue() { + currentValue++; + //The current value reinitializes to lowerRange once it reaches upperRange + if(currentValue>upperRange) + { + currentValue=lowerRange; + } + return currentValue; + } + + @Override + public Object run() { + currentValue = findNextHigherValue(); + return currentValue; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CyclicSeqStringGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CyclicSeqStringGen.java new file mode 100644 index 000000000..f1c79fbe1 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/CyclicSeqStringGen.java @@ -0,0 +1,66 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; + +/* +Description :- Cyclic Sequential String Generator that produces prefixed ID strings within a range. +Params : +1. int lowerRange (values[0]) :- Lower range (inclusive). +2. int upperRange (values[1]) :- Upper range (inclusive). +3. String prefix (values[2], optional) :- Prefix for the generated string. Default: "id-" + +Eg:- +lowerRange: 0, upperRange: 5, prefix: "id-" +Return type (String) :- "id-1000000", "id-1000001", ..., "id-1000005", "id-1000000", "id-1000001", ... + +The numeric portion is offset by 1000000 to maintain fixed-width strings. +*/ + +public class CyclicSeqStringGen implements BaseUtil { + private static final int OFFSET = 1000000; + private final int upperRange; + private final int lowerRange; + private int currentValue; + private final String prefix; + + public CyclicSeqStringGen(List values) { + if (values.size() < 2 || values.size() > 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected 2-3 params: [lowerRange, upperRange, prefix(optional)]"); + } + this.lowerRange = ((Number) values.get(0)).intValue(); + this.upperRange = ((Number) values.get(1)).intValue(); + this.currentValue = this.lowerRange - 1; + this.prefix = values.size() >= 3 ? values.get(2).toString() : "id-"; + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + } + + public CyclicSeqStringGen(List values, int workerId, int totalWorkers) { + if (values.size() < 2 || values.size() > 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected 2-3 params: [lowerRange, upperRange, prefix(optional)]"); + } + this.prefix = values.size() >= 3 ? values.get(2).toString() : "id-"; + int lo = ((Number) values.get(0)).intValue(); + int hi = ((Number) values.get(1)).intValue(); + int divide = (hi - lo) / totalWorkers; + this.lowerRange = lo + divide * workerId + (workerId == 0 ? 0 : 1); + int upperRangeTemp = lo + divide * (workerId + 1) + (workerId == 0 ? 0 : 1); + this.upperRange = Math.min(upperRangeTemp, hi); + this.currentValue = this.lowerRange - 1; + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + } + + @Override + public Object run() { + currentValue++; + if (currentValue > upperRange) { + currentValue = lowerRange; + } + return prefix + (OFFSET + currentValue); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/DeterministicVectorGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/DeterministicVectorGen.java new file mode 100644 index 000000000..f6a56c7ff --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/DeterministicVectorGen.java @@ -0,0 +1,78 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * Generates a deterministic float array (vector) based on a seed. + * This ensures reproducible vectors for consistent benchmarking across runs. + * + * Usage: DeterministicVectorGen with params [arraySize, minValue, maxValue, seed] + * Example: DeterministicVectorGen with params [512, 0.0, 1.0, 12345] + * generates a 512-dimensional vector with values between 0 and 1 using seed 12345 + */ +public class DeterministicVectorGen implements BaseUtil { + + private List floatArray; + + private Float minValue; + private Float maxValue; + private int arraySize; + private long seed; + + public int getArraySize() { + return arraySize; + } + + public DeterministicVectorGen(List values) { + if (values.size() != 4) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected: [arraySize, minValue, maxValue, seed]"); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = ((Number) values.get(1)).floatValue(); + this.maxValue = ((Number) values.get(2)).floatValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + this.seed = ((Number) values.get(3)).longValue(); + } + + public DeterministicVectorGen(List values, int workerId, int totalWorkers) { + if (values.size() != 4) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected: [arraySize, minValue, maxValue, seed]"); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = ((Number) values.get(1)).floatValue(); + this.maxValue = ((Number) values.get(2)).floatValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + this.seed = ((Number) values.get(3)).longValue(); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + Random random = new Random(seed); + floatArray = new ArrayList<>(); + for (int i = 0; i < arraySize; i++) { + Float rd = random.nextFloat() * (maxValue - minValue) + minValue; + floatArray.add(rd); + } + // Format as vector literal: [val1,val2,val3] + StringBuilder sb = new StringBuilder("["); + for (int i = 0; i < floatArray.size(); i++) { + sb.append(floatArray.get(i)); + if (i < floatArray.size() - 1) { + sb.append(","); + } + } + sb.append("]"); + return sb.toString(); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/ExpressionEval.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/ExpressionEval.java new file mode 100644 index 000000000..f3e77120c --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/ExpressionEval.java @@ -0,0 +1,67 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import com.oltpbenchmark.benchmarks.featurebench.helpers.SimpleExpressionEvaluator; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Map; + +/** + * ExpressionEval utility for creating coupled parameters with expression-based relationships. + * Supports arithmetic operations on named parameter references. + * + * Example: + * bindings: + * - util: RandomNumber + * params: [1, 100] + * referenceName: minValue + * - util: ExpressionEval + * params: ["minValue + 10"] + */ +public class ExpressionEval implements BaseUtil { + + private final String expression; + private Map context; + + + public ExpressionEval(List params) { + if (params == null || params.isEmpty()) { + throw new RuntimeException("ExpressionEval requires at least one parameter (the expression string)"); + } + this.expression = (String) params.get(0); + validateExpression(this.expression); + } + + public ExpressionEval(List params, int workerId, int totalWorkers) { + this(params); + } + + private void validateExpression(String expr) { + if (expr == null || expr.trim().isEmpty()) { + throw new RuntimeException("Expression cannot be null or empty"); + } + } + + /** + * Set the context map containing named variable references. + * Must be called before run(). + */ + public void setContext(Map context) { + this.context = context; + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException { + + if (context == null) { + throw new RuntimeException("Context not set. ExpressionEval requires setContext() to be called before run()"); + } + + try { + return SimpleExpressionEvaluator.evaluate(expression, context); + } catch (Exception e) { + throw new RuntimeException("Failed to evaluate expression: '" + expression + "'", e); + } + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/HashedPrimaryStringGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/HashedPrimaryStringGen.java new file mode 100644 index 000000000..207b73afa --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/HashedPrimaryStringGen.java @@ -0,0 +1,67 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import com.oltpbenchmark.benchmarks.featurebench.helpers.MD5hash; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; + +/* + +Params : +1.int startNumber (values[0]) :- starting number for numeric string Primary Key. +2.int desiredLength (values[1]) :- desired length for numeric string Primary key.(extra characters appended by 'a'). + +Eg:- +startNumber=0, desiredLength: 5 +String Numeric Primary keys generated :- "0aaaa","1aaaa","2aaaa","3aaaa",...... +Return type :- String (Numeric) +*/ + +public class HashedPrimaryStringGen implements BaseUtil { + private final int desiredLength; + private final int startNumber; + private int currentValue; + private String key; + + public HashedPrimaryStringGen(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.startNumber = ((Number) values.get(0)).intValue(); + this.currentValue = startNumber - 1; + this.desiredLength = ((Number) values.get(1)).intValue(); + if (desiredLength <= 0) { + throw new RuntimeException("Please use positive desired length for string primary keys"); + } + } + + public HashedPrimaryStringGen(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + int divide = (((Number) values.get(1)).intValue() - ((Number) values.get(0)).intValue()) / totalWorkers; + this.startNumber = ((Number) values.get(0)).intValue() - 1 + divide * workerId; + this.currentValue = startNumber - 1; + int upperRangeTemp = (((Number) values.get(0)).intValue() + (divide) * (workerId + 1) + (workerId == 0 ? 0 : 1)); + this.desiredLength = Math.min(upperRangeTemp, ((Number) values.get(1)).intValue()); + if (desiredLength <= 0) { + throw new RuntimeException("Please use positive desired length for string primary keys"); + } + } + + public String numberToIdString() { + String md5HASHString= MD5hash.getMd5(String.valueOf(currentValue)); + int repeatCount = (int) Math.ceil((double) desiredLength /32); + String baseNumberStr = StringUtils.repeat(md5HASHString, repeatCount); + return baseNumberStr.length() == desiredLength ? baseNumberStr : baseNumberStr.substring(0,desiredLength); + } + + @Override + public Object run() { + currentValue++; + key = numberToIdString(); + return key; + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/HashedRandomString.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/HashedRandomString.java new file mode 100644 index 000000000..8ab8c935e --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/HashedRandomString.java @@ -0,0 +1,70 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import com.oltpbenchmark.benchmarks.featurebench.helpers.MD5hash; +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +public class HashedRandomString extends Random implements BaseUtil { + + + /* + Description :- returns a random string '{number}aaaaaa' Here number will lie between minimum and maximum value . + Params:- + 1. int: minimumNumber(values[0]) :- minimum number. + 2. int: maximumNumber(values[1]):- maximum number. + 3. int: Length(values[2]):- Length of string + Return type:- String ('{number}aaaaaa') +*/ + private int minimumNumber; + private int maximumNumber; + private int length; + + public HashedRandomString(List values) { + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumNumber = ((Number) values.get(0)).intValue(); + this.maximumNumber = ((Number) values.get(1)).intValue(); + this.length = ((Number) values.get(2)).intValue(); + if (maximumNumber < minimumNumber || length <= 0) + throw new RuntimeException("Please enter correct min, max and no. of characters for random string"); + } + + public HashedRandomString(List values, int workerId, int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumNumber = ((Number) values.get(0)).intValue(); + this.maximumNumber = ((Number) values.get(1)).intValue(); + this.length = ((Number) values.get(2)).intValue(); + if (maximumNumber < minimumNumber || length <= 0) + throw new RuntimeException("Please enter correct min, max and no. of characters for random string"); + } + + public int number(int minimum, int maximum) { + + int range_size = maximum - minimum + 1; + int value = this.nextInt(range_size); + value += minimum; + + return value; + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + + int curr = number(minimumNumber, maximumNumber); + String md5HASHString= MD5hash.getMd5(String.valueOf(curr)); + int repeatCount = (int) Math.ceil((double) length /32); + String baseNumberStr = StringUtils.repeat(md5HASHString, repeatCount); + return baseNumberStr.length() == length ? baseNumberStr : baseNumberStr.substring(0,length); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneNumberFromArray.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneNumberFromArray.java new file mode 100644 index 000000000..78c9adfa0 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneNumberFromArray.java @@ -0,0 +1,56 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class OneNumberFromArray implements BaseUtil { + private List listOfIntegers; + + public OneNumberFromArray(List values) { + if (values.size() == 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + listOfIntegers = new ArrayList<>(); + for (Object value : values) { + listOfIntegers.add(convertToInteger(value)); + } + } + + public OneNumberFromArray(List values, int workerId, int totalWorkers) { + if (values.size() == 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + listOfIntegers = new ArrayList<>(); + for (Object value : values) { + listOfIntegers.add(convertToInteger(value)); + } + } + + private Integer convertToInteger(Object value) { + if (value instanceof Integer) { + return (Integer) value; + } else if (value instanceof String) { + try { + return Integer.parseInt((String) value); + } catch (NumberFormatException e) { + throw new RuntimeException("Cannot convert value to Integer: " + value, e); + } + } else { + throw new RuntimeException("Unsupported type for conversion to Integer: " + value.getClass()); + } + } + + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException { + try { + return listOfIntegers.get(new Random().nextInt(listOfIntegers.size())); + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneStringFromArray.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneStringFromArray.java new file mode 100644 index 000000000..a8a300262 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneStringFromArray.java @@ -0,0 +1,49 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.*; + +/* +Description :- Chooses a string randomly from an array of strings passed. +Params : +1.Array of Strings (values) +Eg:- +str :- ["abc","hty","iki","pou","qwe"] +Return type (String) :- "abc" OR "hty" OR "iki" OR "pou" OR "qwe" (randomly chosen). +*/ + + +public class OneStringFromArray implements BaseUtil { + private List str; + + public OneStringFromArray(List values) { + if (values.size() == 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + str = new ArrayList<>(); + for (Object value : values) { + str.add((String) value); + } + } + public OneStringFromArray(List values,int workerId,int totalWorkers) { + if (values.size() == 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + str = new ArrayList<>(); + for (Object value : values) { + str.add((String) value); + } + } + + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException { + try { + return str.get(new Random().nextInt(str.size())); + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneUUIDFromArray.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneUUIDFromArray.java new file mode 100644 index 000000000..5b5eda857 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/OneUUIDFromArray.java @@ -0,0 +1,54 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.UUID; + + + +/* +Description :- Chooses a uuid randomly from an array of uuids passed. +Params : +1.Array of UUIDs (values) +Eg:- +str :- ["uuid1","uuid2"] +Return type (UUID) :- (randomly chosen). +*/ + + +public class OneUUIDFromArray implements BaseUtil { + private List str; + + public OneUUIDFromArray(List values) { + if (values.size() == 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + str = new ArrayList<>(); + for (Object value : values) { + str.add((String) value); + } + } + public OneUUIDFromArray(List values,int workerId,int totalWorkers) { + if (values.size() == 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + str = new ArrayList<>(); + for (Object value : values) { + str.add((String) value); + } + } + + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException { + try { + return UUID.fromString(str.get(new Random().nextInt(str.size()))); + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryDateGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryDateGen.java new file mode 100644 index 000000000..43f9f9cb3 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryDateGen.java @@ -0,0 +1,78 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.time.LocalDate; +import java.util.List; +import java.util.Random; + +/* +Description :- Generate Sequential date from 01-01-2023 +Start Date :- 01-01-2023 +Params : +1.int: numberofDays (values[0]) :- Number of days +2 int: offset (values[1]) + +Eg:- +numberofDays:- 10 +Return type : (String):- 03-01-2023 +*/ +public class PrimaryDateGen implements BaseUtil { + private final int numberofDays; + + private int offSet = 1; + + private int currentPlus = 0; + LocalDate startDate = LocalDate.of(2023, 1, 1); + + private final Random rd = new Random((int) System.nanoTime()); + + + public PrimaryDateGen(List values) { + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberofDays = values.get(0) instanceof String? Integer.parseInt((String) values.get(0)): ((Number) values.get(0)).intValue(); + if(values.size() == 2){ + this.offSet = values.get(1) instanceof String? Integer.parseInt((String) values.get(1)): ((Number) values.get(1)).intValue(); + this.currentPlus = this.offSet; + } + + if (numberofDays <0) + throw new RuntimeException("Please enter positive number of days"); + + } + + public PrimaryDateGen(List values, int workerId, int totalWorkers) { + + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberofDays = values.get(0) instanceof String? Integer.parseInt((String) values.get(0)): ((Number) values.get(0)).intValue(); + if(values.size() == 2){ + this.offSet = values.get(1) instanceof String? Integer.parseInt((String) values.get(1)): ((Number) values.get(1)).intValue(); + this.currentPlus = this.offSet; + } + int divide = this.numberofDays / totalWorkers; + this.currentPlus = this.currentPlus + divide * workerId ; + + System.out.println(this.currentPlus); + + if (numberofDays <0) + throw new RuntimeException("Please enter positive number of days"); + + } + + + private int findNextHigherValue() { + return currentPlus++; + } + + @Override + public Object run() { + int vv = findNextHigherValue(); + return startDate.plusDays(vv); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryFloatGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryFloatGen.java new file mode 100644 index 000000000..3aef40fa7 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryFloatGen.java @@ -0,0 +1,54 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; + +public class PrimaryFloatGen implements BaseUtil{ + + private int lowerBound; + private final int upperBound; + private final double denominator ; + + + + public PrimaryFloatGen(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowerBound = ((Number) values.get(0)).intValue(); + this.upperBound = ((Number) values.get(1)).intValue(); + int decimalPoints = ((Number) values.get(2)).intValue(); + this.denominator = Math.pow(10, decimalPoints); + + if (lowerBound < 0 || upperBound < lowerBound || decimalPoints < 0) { + throw new RuntimeException("Incorrect parameters for random no with decimal points"); + } + } + + public PrimaryFloatGen(List values,int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + int divide = (((Number) values.get(1)).intValue() - ((Number) values.get(0)).intValue()) / totalWorkers; + this.lowerBound = ((Number) values.get(0)).intValue() + divide * workerId; + int upperRangeTemp = (((Number) values.get(0)).intValue() + (divide) * (workerId + 1) + (workerId == 0 ? 0 : 1)); + this.upperBound = Math.min(upperRangeTemp, ((Number) values.get(1)).intValue()); + int decimalPoints = ((Number) values.get(2)).intValue(); + this.denominator = Math.pow(10, decimalPoints); + + if (lowerBound < 0 || upperBound < lowerBound || decimalPoints < 0) { + throw new RuntimeException("Incorrect parameters for random no with decimal points"); + } + } + + private int findNextHigherValue() { + return lowerBound++; + } + + @Override + public Object run() { + int curr = findNextHigherValue(); + return Math.round( Math.PI * curr * denominator)/(denominator); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntGen.java new file mode 100644 index 000000000..485f056f7 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntGen.java @@ -0,0 +1,65 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + + +import java.util.List; + + +/* +Description :- Integer Primary key generator between a range. +Params : +1.int: lowerRange (values[0]) :- Lower Range for Integer Primary key. +2.int: upperRange (values[1]) :- Upper Range for Integer Primary key. + +Eg:- +lowerRange:- 10, upperRange: 20 +Return type (Integer) :- Any value between 10 and 20 including these bounds. +*/ + +public class PrimaryIntGen implements BaseUtil { + private final int upperRange; + private final int lowerRange; + private int currentValue; + + public PrimaryIntGen(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.currentValue = ((Number) values.get(0)).intValue() - 1; + this.upperRange = ((Number) values.get(1)).intValue(); + this.lowerRange = ((Number) values.get(0)).intValue(); + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + } + + public PrimaryIntGen(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + int divide = (((Number) values.get(1)).intValue() - ((Number) values.get(0)).intValue()) / totalWorkers; + this.currentValue = ((Number) values.get(0)).intValue() - 1 + divide * workerId; + int upperRangeTemp = (((Number) values.get(0)).intValue() + (divide) * (workerId + 1) + (workerId == 0 ? 0 : 1)); + this.upperRange = Math.min(upperRangeTemp, ((Number) values.get(1)).intValue()); + this.lowerRange = ((Number) values.get(0)).intValue() + divide * (workerId) + (workerId == 0 ? 0 : 1); + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + + } + + private int findNextHigherValue() { + currentValue++; + return currentValue; + } + + @Override + public Object run() { + if (currentValue >= upperRange) { + throw new RuntimeException("Out of bounds primary key access"); + } + currentValue = findNextHigherValue(); + return currentValue; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntGenThroughput.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntGenThroughput.java new file mode 100644 index 000000000..06c3cab52 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntGenThroughput.java @@ -0,0 +1,104 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + + +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; + + +/* +Description :- Integer Primary key generator between a range. +Params : +1.int: lowerRange (values[0]) :- Lower Range for Integer Primary key. +2.int: upperRange (values[1]) :- Upper Range for Integer Primary key. + +Eg:- +lowerRange:- 10, upperRange: 20 +Return type (Integer) :- Any value between 10 and 20 including these bounds. +*/ + +public class PrimaryIntGenThroughput implements BaseUtil { + + /* + * Shared, JVM-wide counters keyed by the original (lowerRange, upperRange) + * parameters. The 3-arg (worker-aware) constructor uses these so that + * every worker thread - and every iteration of the optimal-threads + * search that re-creates workers - draws from the SAME monotonically + * increasing sequence. Without this, iteration N's worker 0 would + * always restart at lowerRange and collide with iteration N-1's + * worker 0, producing duplicate primary keys. + */ + private static final ConcurrentHashMap SHARED_COUNTERS = + new ConcurrentHashMap<>(); + + private final int upperRange; + private final int lowerRange; + private final AtomicInteger sharedCounter; + private int currentValue; + + public PrimaryIntGenThroughput(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.currentValue = ((Number) values.get(0)).intValue() - 1; + this.upperRange = ((Number) values.get(1)).intValue(); + this.lowerRange = ((Number) values.get(0)).intValue(); + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + this.sharedCounter = null; + } + + public PrimaryIntGenThroughput(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowerRange = ((Number) values.get(0)).intValue(); + this.upperRange = ((Number) values.get(1)).intValue(); + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + this.currentValue = this.lowerRange - 1; + + /* + * Worker partitioning intentionally collapses into a single shared + * counter: dividing the range up-front works only when workers are + * created exactly once, but the optimal-threads search re-creates + * the worker pool each iteration, which would reset every + * partition's starting point and emit duplicate keys across + * iterations. A shared atomic counter, scoped to the original + * (lowerRange, upperRange) params, hands out unique values to all + * workers across all iterations within the JVM. + */ + this.sharedCounter = SHARED_COUNTERS.computeIfAbsent( + counterKey(this.lowerRange, this.upperRange), + k -> new AtomicInteger(this.lowerRange - 1)); + } + + private int findNextHigherValue() { + currentValue++; + return currentValue; + } + + @Override + public Object run() { + if (sharedCounter != null) { + int next = sharedCounter.incrementAndGet(); + if (next > upperRange) { + throw new RuntimeException("Out of bounds primary key access"); + } + return next; + } + if (currentValue >= upperRange) { + throw new RuntimeException("Out of bounds primary key access"); + } + currentValue = findNextHigherValue(); + return currentValue; + } + + private static String counterKey(int lower, int upper) { + return lower + "_" + upper; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntRandomForExecutePhase.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntRandomForExecutePhase.java new file mode 100644 index 000000000..050d27cfd --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryIntRandomForExecutePhase.java @@ -0,0 +1,39 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public class PrimaryIntRandomForExecutePhase implements BaseUtil { + private static final Logger LOG = LoggerFactory.getLogger(PrimaryIntGen.class); + private final int upperRange; + private final int lowerRange; + private int currentValue; + + public PrimaryIntRandomForExecutePhase(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + int low = (int) values.get(0); + int high = (int) values.get(1); + + int diff = (high - low) + 1 == high ? Math.floorDiv(high, totalWorkers) : Math.floorDiv((high - low), totalWorkers); + + this.lowerRange = workerId == 0 ? low : low + workerId * diff + 1; + this.upperRange = Math.min(low + diff * (workerId + 1), high); + this.currentValue = this.lowerRange; + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + + } + + @Override + public Object run() { + return ThreadLocalRandom.current().nextInt(lowerRange, upperRange); + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryStringGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryStringGen.java new file mode 100644 index 000000000..028e915dc --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/PrimaryStringGen.java @@ -0,0 +1,65 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; + +/* + +Params : +1.int startNumber (values[0]) :- starting number for numeric string Primary Key. +2.int desiredLength (values[1]) :- desired length for numeric string Primary key.(extra characters appended by 'a'). + +Eg:- +startNumber=0, desiredLength: 5 +String Numeric Primary keys generated :- "0aaaa","1aaaa","2aaaa","3aaaa",...... +Return type :- String (Numeric) +*/ + +public class PrimaryStringGen implements BaseUtil { + private final int desiredLength; + private final int startNumber; + private int currentValue; + private String key; + + public PrimaryStringGen(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.startNumber = ((Number) values.get(0)).intValue(); + this.currentValue = startNumber - 1; + this.desiredLength = ((Number) values.get(1)).intValue(); + if (desiredLength <= 0) { + throw new RuntimeException("Please use positive desired length for string primary keys"); + } + } + + public PrimaryStringGen(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + int divide = (((Number) values.get(1)).intValue() - ((Number) values.get(0)).intValue()) / totalWorkers; + this.startNumber = ((Number) values.get(0)).intValue() - 1 + divide * workerId; + this.currentValue = startNumber - 1; + int upperRangeTemp = (((Number) values.get(0)).intValue() + (divide) * (workerId + 1) + (workerId == 0 ? 0 : 1)); + this.desiredLength = Math.min(upperRangeTemp, ((Number) values.get(1)).intValue()); + if (desiredLength <= 0) { + throw new RuntimeException("Please use positive desired length for string primary keys"); + } + } + + public String numberToIdString() { + StringBuilder baseNumberStr = new StringBuilder(String.valueOf(currentValue)); + while (baseNumberStr.length() < desiredLength) { + baseNumberStr.append('a'); + } + return baseNumberStr.toString(); + } + + @Override + public Object run() { + currentValue++; + key = numberToIdString(); + return key; + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomAString.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomAString.java new file mode 100644 index 000000000..5846d4454 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomAString.java @@ -0,0 +1,72 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +/* + Description :- returns a random alphabetic string with length in range [minimumlength,maximumlength]. + Params:- + 1. int: minimumLength(values[0]) :- minimum length of random alphabetic string. + 2. int: maximumLength(values[1]):- maximum length of random alphabetic string. + Return type:- String (Alphabetic) +*/ + +public class RandomAString extends Random implements BaseUtil { + + private final int minimumLength; + private final int maximumLength; + + public RandomAString(List values) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumLength = ((Number) values.get(0)).intValue(); + this.maximumLength = ((Number) values.get(1)).intValue(); + if (minimumLength > maximumLength || minimumLength == 0 && maximumLength == 0 || minimumLength < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + } + public RandomAString(List values,int workerId,int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumLength = ((Number) values.get(0)).intValue(); + this.maximumLength = ((Number) values.get(1)).intValue(); + if (minimumLength > maximumLength || minimumLength == 0 && maximumLength == 0 || minimumLength < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + } + + /** + * @returns a random alphabetic string with length in range [minimum_length, + * maximum_length]. + */ + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + return randomString(minimumLength, maximumLength, 'a', 26); + } + + private String randomString(int minimumLength, int maximumLength, char base, int numCharacters) { + int length = number(minimumLength, maximumLength); + byte baseByte = (byte) base; + byte[] bytes = new byte[length]; + for (int i = 0; i < length; ++i) { + bytes[i] = (byte) (baseByte + number(0, numCharacters - 1)); + } + return new String(bytes); + } + + public int number(int minimum, int maximum) { + + int range_size = maximum - minimum + 1; + int value = this.nextInt(range_size); + value += minimum; + + return value; + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomBoolean.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomBoolean.java new file mode 100644 index 000000000..4ba0dc3e5 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomBoolean.java @@ -0,0 +1,37 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; +import java.util.Random; + +/* + * Description :- Returns a random boolean value. + * Params:- Empty list + * Return type:- (boolean) True OR false + * */ +public class RandomBoolean implements BaseUtil { + private Random rd; + + public RandomBoolean(List values) { + if (values.size() != 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + Random rd = new Random(); + } + public RandomBoolean(List values,int workerId,int totalWorkers) { + if (values.size() != 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + Random rd = new Random(); + } + + @Override + public Object run() { + if (this.rd == null) { + this.rd = new Random(); + } + return rd.nextBoolean(); + } +} + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomBytea.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomBytea.java new file mode 100644 index 000000000..443a3af60 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomBytea.java @@ -0,0 +1,66 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +/* + Description :- returns a random hexadecimal string with length in range [minimumlength,maximumlength]. + Params:- + 1. int: minimumLength(values[0]) :- minimum length of random hexadecimal string. + 2. int: maximumLength(values[1]):- maximum length of random hexadecimal string. + Return type:- String (Hexadecimal) +*/ + +public class RandomBytea extends Random implements BaseUtil { + + private final int minimumLength; + private final int maximumLength; + + public RandomBytea(List values) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumLength = ((Number) values.get(0)).intValue(); + this.maximumLength = ((Number) values.get(1)).intValue(); + if (minimumLength > maximumLength || minimumLength == 0 && maximumLength == 0 || minimumLength < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + } + public RandomBytea(List values, int workerId, int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumLength = ((Number) values.get(0)).intValue(); + this.maximumLength = ((Number) values.get(1)).intValue(); + if (minimumLength > maximumLength || minimumLength == 0 && maximumLength == 0 || minimumLength < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + } + + /** + * @returns a random byte array with length in range [minimumLength, maximumLength]. + */ + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + return randomByteArray(minimumLength, maximumLength); + } + + private byte[] randomByteArray(int minimumLength, int maximumLength) { + int length = number(minimumLength, maximumLength); + byte[] bytes = new byte[length]; + this.nextBytes(bytes); + return bytes; + } + + public int number(int minimum, int maximum) { + int range_size = maximum - minimum + 1; + int value = this.nextInt(range_size); + value += minimum; + return value; + } + +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomDate.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomDate.java new file mode 100644 index 000000000..35455e311 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomDate.java @@ -0,0 +1,64 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.time.LocalDate; +import java.util.List; +import java.util.Random; + +/* +Description :- Returns a random date which will lie between given number of days +Start Date :- 01-01-2023 +Params : +1.int: numberofDays (values[0]) :- Number of days +2 int offset (optional) + +Eg:- +numberofDays:- 10 +Return type : (String):- 03-01-2023 +*/ +public class RandomDate implements BaseUtil { + private final int numberofDays; + LocalDate startDate = LocalDate.of(2023, 1, 1); + + private final Random rd = new Random((int) System.nanoTime()); + + + public RandomDate(List values) { + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberofDays = ((Number) values.get(0)).intValue(); + if(values.size() == 2){ + int offSet = ((Number) values.get(1)).intValue(); + this.startDate = this.startDate.plusDays(offSet); + } + if (numberofDays <0) + throw new RuntimeException("Please enter positive number of days"); + + } + + public RandomDate(List values, int workerId, int totalWorkers) { + + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberofDays = values.get(0) instanceof String? Integer.parseInt((String) values.get(0)): ((Number) values.get(0)).intValue(); + if(values.size() == 2){ + int offSet = values.get(1) instanceof String? Integer.parseInt((String) values.get(1)): ((Number) values.get(1)).intValue(); + this.startDate = this.startDate.plusDays(offSet); + } + + if (numberofDays <0) + throw new RuntimeException("Please enter positive number of days"); + + } + + @Override + public Object run() { + int days = rd.nextInt(numberofDays); + return startDate.plusDays(days); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomDateBtwYears.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomDateBtwYears.java new file mode 100644 index 000000000..f11fee203 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomDateBtwYears.java @@ -0,0 +1,53 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.time.LocalDate; +import java.util.List; + +public class RandomDateBtwYears implements BaseUtil { + + private final int yearLowerBound; + private final int yearUpperBound; + + + public RandomDateBtwYears(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.yearLowerBound = ((Number) values.get(0)).intValue(); + this.yearUpperBound = ((Number) values.get(1)).intValue(); + if (yearLowerBound > yearUpperBound) { + throw new RuntimeException("Please enter correct values for yearLowerBound and yearUpperBound"); + } + } + + public RandomDateBtwYears(List values,int workerId,int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.yearLowerBound = ((Number) values.get(0)).intValue(); + this.yearUpperBound = ((Number) values.get(1)).intValue(); + if (yearLowerBound > yearUpperBound) { + throw new RuntimeException("Please enter correct values for yearLowerBound and yearUpperBound"); + } + } + + public static int createRandomIntBetween(int start, int end) { + return start + (int) Math.round(Math.random() * (end - start)); + } + + public LocalDate createRandomDate(int startYear, int endYear) { + int day = createRandomIntBetween(1, 28); + int month = createRandomIntBetween(1, 12); + int year = createRandomIntBetween(startYear, endYear); + return LocalDate.of(year, month, day); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + LocalDate randomDate = createRandomDate(yearLowerBound, yearUpperBound); + return randomDate; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFixedPoint.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFixedPoint.java new file mode 100644 index 000000000..433409258 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFixedPoint.java @@ -0,0 +1,76 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +/* + Description :- returns a random double in the range[minimum,maximum] with fixed decimal places. + Params:- + 1. int: decimalPlaces(values[0]) :- fixed decimal points for the random number. + 2. double: minimum(values[1]) :- lower range for random number. + 3. double: maximum(values[2]):- upper range for random number. + Eg:- + decimalPlaces:- 3 + minimum:- 4 + maximum:- 6 + Return type:- (double) :- 4.301 +*/ + +public class RandomFixedPoint extends Random implements BaseUtil { + + private final int decimalPlaces; + private final double minimum; + private final double maximum; + + public RandomFixedPoint(List values) { + + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.decimalPlaces = ((Number) values.get(0)).intValue(); + this.minimum = ((Number) values.get(1)).doubleValue(); + this.maximum = ((Number) values.get(2)).doubleValue(); + if (maximum < minimum) + throw new RuntimeException("Please enter a correct range for min and max values"); + } + + public RandomFixedPoint(List values, int workerId, int totalWorkers) { + + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.decimalPlaces = ((Number) values.get(0)).intValue(); + this.minimum = ((Number) values.get(1)).doubleValue(); + this.maximum = ((Number) values.get(2)).doubleValue(); + if (maximum < minimum) + throw new RuntimeException("Please enter a correct range for min and max values"); + } + + public int number(int minimum, int maximum) { + + int range_size = maximum - minimum + 1; + int value = this.nextInt(range_size); + value += minimum; + + return value; + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + int multiplier = 1; + for (int i = 0; i < decimalPlaces; ++i) { + multiplier *= 10; + } + + int int_min = (int) (minimum * multiplier + 0.5); + int int_max = (int) (maximum * multiplier + 0.5); + + return (double) this.number(int_min, int_max) / (double) multiplier; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFloat.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFloat.java new file mode 100644 index 000000000..8c9c56258 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFloat.java @@ -0,0 +1,56 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; +import java.util.Random; + +public class RandomFloat extends Random implements BaseUtil{ + + private int lowerBound; + private final int upperBound; + private final double denominator ; + + + + public RandomFloat(List values) { + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowerBound = ((Number) values.get(0)).intValue(); + this.upperBound = ((Number) values.get(1)).intValue(); + int decimalPoints = ((Number) values.get(2)).intValue(); + this.denominator = Math.pow(10, decimalPoints); + + if (lowerBound < 0 || upperBound < lowerBound || decimalPoints < 0) { + throw new RuntimeException("Incorrect parameters for random no with decimal points"); + } + } + + public RandomFloat(List values,int workerId, int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + int divide = (((Number) values.get(1)).intValue() - ((Number) values.get(0)).intValue()) / totalWorkers; + this.lowerBound = ((Number) values.get(0)).intValue() + divide * workerId; + int upperRangeTemp = (((Number) values.get(0)).intValue() + (divide) * (workerId + 1) + (workerId == 0 ? 0 : 1)); + this.upperBound = Math.min(upperRangeTemp, ((Number) values.get(1)).intValue()); + int decimalPoints = ((Number) values.get(2)).intValue(); + this.denominator = Math.pow(10, decimalPoints); + + if (lowerBound < 0 || upperBound < lowerBound || decimalPoints < 0) { + throw new RuntimeException("Incorrect parameters for random no with decimal points"); + } + } + + + @Override + public Object run() { + int range_size = upperBound - lowerBound + 1; + int value = this.nextInt(range_size); + value += lowerBound; + return Math.round( Math.PI * value * denominator)/(denominator); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFloatArrayGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFloatArrayGen.java new file mode 100644 index 000000000..375a8bc6d --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomFloatArrayGen.java @@ -0,0 +1,72 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * Generates a random float array for vector operations. + * Usage: RandomFloatArrayGen with params [arraySize, minValue, maxValue] + * Example: RandomFloatArrayGen with params [512, 0.0, 1.0] generates a 512-dimensional vector with values between 0 and 1 + */ +public class RandomFloatArrayGen implements BaseUtil { + + private List floatArray; + + private Float minValue; + private Float maxValue; + private int arraySize; + + public int getArraySize() { + return arraySize; + } + + public RandomFloatArrayGen(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected: [arraySize, minValue, maxValue]"); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = ((Number) values.get(1)).floatValue(); + this.maxValue = ((Number) values.get(2)).floatValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + } + + public RandomFloatArrayGen(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected: [arraySize, minValue, maxValue]"); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = ((Number) values.get(1)).floatValue(); + this.maxValue = ((Number) values.get(2)).floatValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + Random random = new Random(); + floatArray = new ArrayList<>(); + for (int i = 0; i < arraySize; i++) { + Float rd = random.nextFloat() * (maxValue - minValue) + minValue; + floatArray.add(rd); + } + // Format as vector literal: [val1,val2,val3] + StringBuilder sb = new StringBuilder("["); + for (int i = 0; i < floatArray.size(); i++) { + sb.append(floatArray.get(i)); + if (i < floatArray.size() - 1) { + sb.append(","); + } + } + sb.append("]"); + return sb.toString(); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomInt.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomInt.java new file mode 100644 index 000000000..e6c12fe5a --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomInt.java @@ -0,0 +1,55 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +/* + Description :- Returns a random int value between minimum and maximum (inclusive). + Params:- + 1. int: minimum(values[0]) :- lower range for random number. + 2. int: maximum(values[1]) :- upper range for random number. + Eg:- + minimum:- 4 + maximum:- 10 + Return type:- (int) :- 7 +*/ + +public class RandomInt extends Random implements BaseUtil { + + private final int minimum; + private final int maximum; + + public RandomInt(List values) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimum = ((Number) values.get(0)).intValue(); + this.maximum = ((Number) values.get(1)).intValue(); + if (maximum < minimum) + throw new RuntimeException("Please enter correct values for min and max"); + } + + public RandomInt(List values, int workerId, int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimum = ((Number) values.get(0)).intValue(); + this.maximum = ((Number) values.get(1)).intValue(); + if (maximum < minimum) + throw new RuntimeException("Please enter correct values for min and max"); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException { + int range_size = maximum - minimum + 1; + int value = this.nextInt(range_size); + value += minimum; + return value; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomIntegerArrayGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomIntegerArrayGen.java new file mode 100644 index 000000000..f26a88db6 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomIntegerArrayGen.java @@ -0,0 +1,54 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class RandomIntegerArrayGen implements BaseUtil { + + private List integerArray; + + private Integer minValue; + private Integer maxValue; + private int arraySize; + + public RandomIntegerArrayGen(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = (Integer) values.get(1); + this.maxValue = (Integer) values.get(2); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + } + + public RandomIntegerArrayGen(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = (Integer) values.get(1); + this.maxValue = (Integer) values.get(2); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + Random random = new Random(); + integerArray = new ArrayList<>(); + for (int i = 0; i < arraySize; i++) { + Integer rd = random.nextInt((maxValue - minValue) + 1) + minValue; + integerArray.add(rd); + } + return integerArray.toString().replaceFirst("\\[", "{").replace("]", "}"); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomJson.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomJson.java new file mode 100644 index 000000000..8b96eca1a --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomJson.java @@ -0,0 +1,40 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + + +import org.json.JSONObject; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collections; +import java.util.List; + +public class RandomJson implements BaseUtil { + + protected int fields; + protected int valueLength; + protected int nestedness; + + public RandomJson(List values) { + if (values.size() < 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.fields = (int)values.get(0); + this.valueLength = (int)values.get(1); + if (values.size() > 2) + this.nestedness = (int)values.get(2); + } + + public RandomJson(List values, int workerId, int totalWorkers) { + this(values); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException { + JSONObject outer = new JSONObject(); + for (int i = 0; i < fields; i++) { + outer.put(Integer.toString(i), new RandomStringAlphabets(Collections.singletonList(valueLength)).run()); + } + return outer.toString(); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomLong.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomLong.java new file mode 100644 index 000000000..0c00a66c9 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomLong.java @@ -0,0 +1,58 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +/** + * Returns a random long value between minimum and maximum (inclusive) + * + * @param minimum + * @param maximum + * @return + */ + +public class RandomLong extends Random implements BaseUtil { + + private long minimum; + private long maximum; + + public RandomLong(List values) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimum = ((Number) values.get(0)).longValue(); + this.maximum = ((Number) values.get(1)).longValue(); + if (maximum < minimum) + throw new RuntimeException("Please enter correct values for min and max"); + } + public RandomLong(List values,int workerId,int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimum = ((Number) values.get(0)).longValue(); + this.maximum = ((Number) values.get(1)).longValue(); + if (maximum < minimum) + throw new RuntimeException("Please enter correct values for min and max"); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + long range_size = (maximum - minimum) + 1; + + // error checking and 2^x checking removed for simplicity. + long bits, val; + do { + bits = (this.nextLong() << 1) >>> 1; + val = bits % range_size; + } while (bits - val + range_size < 0L); + val += minimum; + + return val; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomLongArrayGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomLongArrayGen.java new file mode 100644 index 000000000..678424ee3 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomLongArrayGen.java @@ -0,0 +1,55 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class RandomLongArrayGen implements BaseUtil { + + private List longArray; + + private Long minValue; + private Long maxValue; + private int arraySize; + + public RandomLongArrayGen(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = ((Number) values.get(1)).longValue(); + this.maxValue = ((Number) values.get(2)).longValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + } + + public RandomLongArrayGen(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive integer array length"); + this.minValue = ((Number) values.get(1)).longValue(); + this.maxValue = ((Number) values.get(2)).longValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + Random random = new Random(); + longArray = new ArrayList<>(); + for (int i = 0; i < arraySize; i++) { + Long rd = random.nextLong((maxValue - minValue) + 1) + minValue; + longArray.add(rd); + } + return longArray.toString().replaceFirst("\\[", "{").replace("]", "}"); + } +} + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNoWithDecimalPoints.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNoWithDecimalPoints.java new file mode 100644 index 000000000..1cd12a79e --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNoWithDecimalPoints.java @@ -0,0 +1,44 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; +import java.util.Random; + +public class RandomNoWithDecimalPoints implements BaseUtil { + + private final int lowerBound; + private final int upperBound; + private final int decimalPoints; + + public RandomNoWithDecimalPoints(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowerBound = ((Number) values.get(0)).intValue(); + this.upperBound = ((Number) values.get(1)).intValue(); + this.decimalPoints = ((Number) values.get(2)).intValue(); + if (lowerBound < 0 || upperBound < lowerBound || decimalPoints < 0) { + throw new RuntimeException("Incorrect parameters for random no with decimal points"); + } + } + + public RandomNoWithDecimalPoints(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowerBound = ((Number) values.get(0)).intValue(); + this.upperBound = ((Number) values.get(1)).intValue(); + this.decimalPoints = ((Number) values.get(2)).intValue(); + if (lowerBound < 0 || upperBound < lowerBound || decimalPoints < 0) { + throw new RuntimeException("Incorrect parameters for random no with decimal points"); + } + } + + @Override + public Object run() { + Random rnd = new Random(); + double randomNo = lowerBound + (upperBound - lowerBound) * rnd.nextDouble(); + return (double) Math.round(randomNo * (Math.pow(10, decimalPoints))) / (Math.pow(10, decimalPoints)); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNstring.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNstring.java new file mode 100644 index 000000000..f89c15436 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNstring.java @@ -0,0 +1,63 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +public class RandomNstring extends Random implements BaseUtil { + private final int minimumLength; + private final int maximumLength; + + public RandomNstring(List values) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumLength = ((Number) values.get(0)).intValue(); + this.maximumLength = ((Number) values.get(1)).intValue(); + if (minimumLength > maximumLength || minimumLength == 0 && maximumLength == 0 || minimumLength < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + } + + public RandomNstring(List values, int workerId, int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumLength = ((Number) values.get(0)).intValue(); + this.maximumLength = ((Number) values.get(1)).intValue(); + if (minimumLength > maximumLength || minimumLength == 0 && maximumLength == 0 || minimumLength < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + } + + /** + * @returns a random numeric string with length in range [minimum_length, + * maximum_length]. + */ + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + return randomString(minimumLength, maximumLength, '0', 10); + } + + private String randomString(int minimum_length, int maximum_length, char base, int numCharacters) { + int length = number(minimum_length, maximum_length); + byte baseByte = (byte) base; + byte[] bytes = new byte[length]; + for (int i = 0; i < length; ++i) { + bytes[i] = (byte) (baseByte + number(0, numCharacters - 1)); + } + return new String(bytes); + } + + public int number(int minimum, int maximum) { + + int range_size = maximum - minimum + 1; + int value = this.nextInt(range_size); + value += minimum; + + return value; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNumber.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNumber.java new file mode 100644 index 000000000..dbe0c8246 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomNumber.java @@ -0,0 +1,32 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public class RandomNumber implements BaseUtil { + + final private int minimum; + final private int maximum; + + public RandomNumber(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimum = ((Number) values.get(0)).intValue(); + this.maximum = ((Number) values.get(1)).intValue(); + } + public RandomNumber(List values,int workerId,int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimum = ((Number) values.get(0)).intValue(); + this.maximum = ((Number) values.get(1)).intValue(); + } + + @Override + public Object run() { + return ThreadLocalRandom.current().nextInt(minimum, maximum + 1); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomPKString.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomPKString.java new file mode 100644 index 000000000..ec7e89298 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomPKString.java @@ -0,0 +1,65 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +/* + +Params : +1.int startNumber (values[0]) :- starting number for numeric string Primary Key. +2.int desiredLength (values[1]) :- desired length for numeric string Primary key.(extra characters appended by 'a'). + +Eg:- +startNumber=0, desiredLength: 5 +String Numeric Primary keys generated :- "0aaaa","1aaaa","2aaaa","3aaaa",...... +Return type :- String (Numeric) +*/ + +public class RandomPKString implements BaseUtil { + private final int desiredLength; + private final int startNumber; + private final int endNumber; + + private String key; + + public RandomPKString(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.startNumber = ((Number) values.get(0)).intValue(); + this.endNumber = ((Number) values.get(1)).intValue(); + this.desiredLength = ((Number) values.get(2)).intValue(); + if (desiredLength <= 0) { + throw new RuntimeException("Please use positive desired length for string primary keys"); + } + } + + public RandomPKString(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.startNumber = ((Number) values.get(0)).intValue(); + this.endNumber = ((Number) values.get(1)).intValue(); + this.desiredLength = ((Number) values.get(2)).intValue(); + if (desiredLength <= 0) { + throw new RuntimeException("Please use positive desired length for string primary keys"); + } + + } + + public String numberToIdString(int number) { + StringBuilder baseNumberStr = new StringBuilder(String.valueOf(number)); + while (baseNumberStr.length() < desiredLength) { + baseNumberStr.append('a'); + } + return baseNumberStr.toString(); + } + + @Override + public Object run() { + key = numberToIdString(ThreadLocalRandom.current().nextInt(startNumber, endNumber + 1)); + return key; + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomString.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomString.java new file mode 100644 index 000000000..44cf257e0 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomString.java @@ -0,0 +1,66 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +public class RandomString extends Random implements BaseUtil { + + + /* + Description :- returns a random string '{number}aaaaaa' Here number will lie between minimum and maximum value . + Params:- + 1. int: minimumNumber(values[0]) :- minimum number. + 2. int: maximumNumber(values[1]):- maximum number. + 3. int: Length(values[2]):- Length of string + Return type:- String ('{number}aaaaaa') +*/ + private int minimumNumber; + private int maximumNumber; + private int length; + + public RandomString(List values) { + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumNumber = ((Number) values.get(0)).intValue(); + this.maximumNumber = ((Number) values.get(1)).intValue(); + this.length = ((Number) values.get(2)).intValue(); + if (maximumNumber < minimumNumber || length <= 0) + throw new RuntimeException("Please enter correct min, max and no. of characters for random string"); + } + + public RandomString(List values, int workerId, int totalWorkers) { + super((int) System.nanoTime()); + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.minimumNumber = ((Number) values.get(0)).intValue(); + this.maximumNumber = ((Number) values.get(1)).intValue(); + this.length = ((Number) values.get(2)).intValue(); + if (maximumNumber < minimumNumber || length <= 0) + throw new RuntimeException("Please enter correct min, max and no. of characters for random string"); + } + + public int number(int minimum, int maximum) { + + int range_size = maximum - minimum + 1; + int value = this.nextInt(range_size); + value += minimum; + + return value; + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, + InstantiationException, IllegalAccessException { + StringBuilder baseNumberStr = new StringBuilder(String.valueOf(number(minimumNumber, maximumNumber))); + while (baseNumberStr.length() < length) { + baseNumberStr.append('a'); + } + return baseNumberStr.toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomStringAlphabets.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomStringAlphabets.java new file mode 100644 index 000000000..51e00bf9f --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomStringAlphabets.java @@ -0,0 +1,39 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; + +public class RandomStringAlphabets implements BaseUtil { + + protected int desiredLength; + + public RandomStringAlphabets(List values) { + if (values.size() != 1) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.desiredLength = ((Number) values.get(0)).intValue(); + if (desiredLength <= 0) + throw new RuntimeException("Please enter positive string length"); + } + public RandomStringAlphabets(List values,int workerId,int totalWorkers) { + if (values.size() != 1) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.desiredLength = ((Number) values.get(0)).intValue(); + if (desiredLength <= 0) + throw new RuntimeException("Please enter positive string length"); + } + + @Override + public Object run() { + String AlphaString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvxyz"; + + StringBuilder sb = new StringBuilder(desiredLength); + for (int i = 0; i < desiredLength; i++) { + int index = (int) (AlphaString.length() * Math.random()); + sb.append(AlphaString.charAt(index)); + } + return sb.toString(); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomStringNumeric.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomStringNumeric.java new file mode 100644 index 000000000..24e76622a --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomStringNumeric.java @@ -0,0 +1,40 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; + +public class RandomStringNumeric implements BaseUtil { + protected int desiredLength; + + public RandomStringNumeric(List values) { + if (values.size() != 1) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.desiredLength = ((Number) values.get(0)).intValue(); + if (desiredLength <= 0) + throw new RuntimeException("Please enter positive string length"); + } + + public RandomStringNumeric(List values, int workerId, int totalWorkers) { + if (values.size() != 1) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.desiredLength = ((Number) values.get(0)).intValue(); + if (desiredLength <= 0) + throw new RuntimeException("Please enter positive string length"); + } + + + @Override + public Object run() { + String NumericString = "0123456789"; + + StringBuilder sb = new StringBuilder(desiredLength); + for (int i = 0; i < desiredLength; i++) { + int index = (int) (NumericString.length() * Math.random()); + sb.append(NumericString.charAt(index)); + } + return sb.toString(); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTextArrayGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTextArrayGen.java new file mode 100644 index 000000000..c8e852589 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTextArrayGen.java @@ -0,0 +1,60 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; + +public class RandomTextArrayGen implements BaseUtil { + + private List textArray; + + private int minLengthOfString; + private int maxLengthOfString; + + private int arraySize; + + + public RandomTextArrayGen(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive text array length"); +// textArray = new ArrayList<>(); + this.minLengthOfString = ((Number) values.get(1)).intValue(); + this.maxLengthOfString = ((Number) values.get(2)).intValue(); + if (minLengthOfString > maxLengthOfString || minLengthOfString < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + + } + + public RandomTextArrayGen(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + + } + this.arraySize = ((Number) values.get(0)).intValue(); + if (arraySize <= 0) + throw new RuntimeException("Please enter positive text array length"); +// textArray = new ArrayList<>(); + this.minLengthOfString = ((Number) values.get(1)).intValue(); + this.maxLengthOfString = ((Number) values.get(2)).intValue(); + if (minLengthOfString > maxLengthOfString || minLengthOfString < 0) + throw new RuntimeException("Please enter correct bounds for max and min length"); + + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + textArray = new ArrayList<>(); + for (int i = 0; i < arraySize; i++) { + String rd = (String) new RandomAString(List.of(minLengthOfString, maxLengthOfString)).run(); + textArray.add(rd); + } + return textArray.toString().replaceFirst("\\[", "{").replace("]", "}"); + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestamp.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestamp.java new file mode 100644 index 000000000..d32ec6620 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestamp.java @@ -0,0 +1,47 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.sql.Timestamp; +import java.util.List; +import java.util.Random; + +public class RandomTimestamp implements BaseUtil{ + + private final int numberofTimestamp; + + long startepoch = 1672511400000L; + + + private final Random rd = new Random(System.currentTimeMillis()); + + public RandomTimestamp(List values) { + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberofTimestamp = ((Number) values.get(0)).intValue(); + + if (numberofTimestamp <0) + throw new RuntimeException("Please enter positive number of days"); + + } + + public RandomTimestamp(List values, int workerId, int totalWorkers) { + + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberofTimestamp = values.get(0) instanceof String? Integer.parseInt((String) values.get(0)): ((Number) values.get(0)).intValue(); + + if (numberofTimestamp <0) + throw new RuntimeException("Please enter positive number of days"); + + } + @Override + public Object run() { + int offset = rd.nextInt(numberofTimestamp); + return new Timestamp(startepoch + offset* 10000000L); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimeZone.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimeZone.java new file mode 100644 index 000000000..4b0dffdf3 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimeZone.java @@ -0,0 +1,51 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.sql.Timestamp; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.Random; + +public class RandomTimestampWithTimeZone implements BaseUtil { + + private final int numberOfTimestamps; + private final Random rd = new Random(System.currentTimeMillis()); + + // Adjust the start epoch as needed for your application + private final long startEpoch = 1672511400000L; + + public RandomTimestampWithTimeZone(List values) { + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberOfTimestamps = ((Number) values.get(0)).intValue(); + + if (numberOfTimestamps < 0) { + throw new RuntimeException("Please enter a positive number of timestamps"); + } + } + + public RandomTimestampWithTimeZone(List values, int workerId, int totalWorkers) { + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberOfTimestamps = ((Number) values.get(0)).intValue(); + + if (numberOfTimestamps < 0) { + throw new RuntimeException("Please enter a positive number of timestamps"); + } + } + + @Override + public Object run() { + int offset = rd.nextInt(numberOfTimestamps); + return Timestamp.from(OffsetDateTime.ofInstant( + Instant.ofEpochMilli(startEpoch + offset * 10000000L), + ZoneOffset.UTC).toInstant()); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimezoneBetweenDates.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimezoneBetweenDates.java new file mode 100644 index 000000000..4fa00f35f --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimezoneBetweenDates.java @@ -0,0 +1,69 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.util.Date; +import java.util.List; + + +public class RandomTimestampWithTimezoneBetweenDates implements BaseUtil { + + private final LocalDateTime startDate; + private final LocalDateTime endDate; + + public RandomTimestampWithTimezoneBetweenDates(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + this.getClass()); + } + if (values.get(0) instanceof Date && values.get(1) instanceof Date) { + this.startDate = ((Date) values.get(0)).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + this.endDate = ((Date) values.get(1)).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + } + else { + this.startDate = LocalDateTime.parse(values.get(0).toString()); + this.endDate = LocalDateTime.parse(values.get(1).toString()); + } + + if (startDate.isAfter(endDate)) { + throw new RuntimeException("Start date must be before end date"); + } + } + + public RandomTimestampWithTimezoneBetweenDates(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + this.getClass()); + } + if (values.get(0) instanceof Date && values.get(1) instanceof Date) { + this.startDate = ((Date) values.get(0)).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + this.endDate = ((Date) values.get(1)).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + } + else { + this.startDate = LocalDateTime.parse(values.get(0).toString()); + this.endDate = LocalDateTime.parse(values.get(1).toString()); + } + + if (startDate.isAfter(endDate)) { + throw new RuntimeException("Start date must be before end date"); + } + } + + public static long createRandomLongBetween(long start, long end) { + return start + (long) (Math.random() * (end - start)); + } + + public Timestamp createRandomTimestamp(LocalDateTime startDate, LocalDateTime endDate) { + long start = startDate.toEpochSecond(ZoneOffset.UTC); + long end = endDate.toEpochSecond(ZoneOffset.UTC); + long randomEpochSecond = createRandomLongBetween(start, end); + + LocalDateTime randomDateTime = LocalDateTime.ofEpochSecond(randomEpochSecond, 0, ZoneOffset.UTC); + return Timestamp.valueOf(randomDateTime); + } + + @Override + public Object run() { + return createRandomTimestamp(startDate, endDate); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimezoneBtwMonths.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimezoneBtwMonths.java new file mode 100644 index 000000000..0de46e7e4 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithTimezoneBtwMonths.java @@ -0,0 +1,60 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.List; + +public class RandomTimestampWithTimezoneBtwMonths implements BaseUtil { + + private final int year; + private final int monthLowerBound; + private final int monthUpperBound; + + public RandomTimestampWithTimezoneBtwMonths(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.year = ((Number) values.get(0)).intValue(); + this.monthLowerBound = ((Number) values.get(1)).intValue(); + this.monthUpperBound = ((Number) values.get(2)).intValue(); + if (monthLowerBound < 1 || monthUpperBound > 12 || monthLowerBound > monthUpperBound) { + throw new RuntimeException("Please enter correct values for monthLowerBound and monthUpperBound"); + } + } + + public RandomTimestampWithTimezoneBtwMonths(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.year = ((Number) values.get(0)).intValue(); + this.monthLowerBound = ((Number) values.get(1)).intValue(); + this.monthUpperBound = ((Number) values.get(2)).intValue(); + if (monthLowerBound < 1 || monthUpperBound > 12 || monthLowerBound > monthUpperBound) { + throw new RuntimeException("Please enter correct values for monthLowerBound and monthUpperBound"); + } + } + + public static int createRandomIntBetween(int start, int end) { + return start + (int) Math.round(Math.random() * (end - start)); + } + + public Timestamp createRandomTimestamp(int year, int startMonth, int endMonth) { + int day = createRandomIntBetween(1, 28); + int month = createRandomIntBetween(startMonth, endMonth); + int hour = createRandomIntBetween(0, 23); + int minute = createRandomIntBetween(0, 59); + int second = createRandomIntBetween(0, 59); + + LocalDateTime randomDateTime = LocalDateTime.of(year, month, day, hour, minute, second); + return Timestamp.valueOf(randomDateTime); + } + + @Override + public Object run() { + Timestamp randomTimestamp = createRandomTimestamp(year, monthLowerBound, monthUpperBound); + return randomTimestamp; + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithoutTimeZone.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithoutTimeZone.java new file mode 100644 index 000000000..c40c30817 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomTimestampWithoutTimeZone.java @@ -0,0 +1,46 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.sql.Timestamp; +import java.util.List; +import java.util.Random; + +public class RandomTimestampWithoutTimeZone implements BaseUtil { + + private final int numberOfTimestamps; + private final Random rd = new Random(System.currentTimeMillis()); + + // Adjust the start epoch as needed for your application + private final long startEpoch = 1672511400000L; + + public RandomTimestampWithoutTimeZone(List values) { + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberOfTimestamps = ((Number) values.get(0)).intValue(); + + if (numberOfTimestamps < 0) { + throw new RuntimeException("Please enter a positive number of timestamps"); + } + } + + public RandomTimestampWithoutTimeZone(List values, int workerId, int totalWorkers) { + if (values.isEmpty()) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + this.numberOfTimestamps = ((Number) values.get(0)).intValue(); + + if (numberOfTimestamps < 0) { + throw new RuntimeException("Please enter a positive number of timestamps"); + } + } + + @Override + public Object run() { + int offset = rd.nextInt(numberOfTimestamps); + return new Timestamp(startEpoch + offset * 10000000L); + } +} \ No newline at end of file diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUUID.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUUID.java new file mode 100644 index 000000000..53c30fcb8 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUUID.java @@ -0,0 +1,24 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; +import java.util.UUID; + +public class RandomUUID implements BaseUtil { + + public RandomUUID(List values) { + if (values.size() != 0) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + } + + public RandomUUID(List values, int workerId, int totalWorkers) { + this(values); + } + + @Override + public Object run() { + return UUID.randomUUID(); + } +} + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueCyclicIntGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueCyclicIntGen.java new file mode 100644 index 000000000..772873094 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueCyclicIntGen.java @@ -0,0 +1,212 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Random; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; + + +/* +Description :- Random Unique Cyclic Integer Generator between a range with +period semantics. Combines the behavior of RandomUniqueIntGen +(each value in the range is visited exactly once per pass, in random +order; the list is re-shuffled and iteration continues when exhausted) +with the period feature of CyclicSeqIntGenWithPeriod (each value in the +cycle is returned `period` times in a row before advancing). + +Params : +1. int: lowerRange (values[0]) :- Lower Range. +2. int: upperRange (values[1]) :- Upper Range. +3. int: period (values[2]) :- Number of consecutive calls that return the + same value before advancing. + +Eg:- +lowerRange: 1, upperRange: 3, period: 2 +Sample output (one possible interleaving): +2 2 3 3 1 1 (pass 1 -- random permutation of [1..3], each value 2 times) +3 3 1 1 2 2 (pass 2 -- fresh random permutation) +... + +Threading model (mirrors PrimaryIntGen / CyclicSeqIntGenWithPeriod): +The 3-arg (worker-aware) constructor uses a JVM-wide shared shuffled list +and shared cursor keyed on (lowerRange, upperRange, period). Every util +instance -- across all worker threads and across optimal-threads-search +iterations that re-create the worker pool -- draws the next value from +this same shared shuffle. When the cursor reaches the end, the first +worker to observe exhaustion re-shuffles the list under a lock and resets +the cursor; other workers retry without producing duplicate reshuffles. + +Each instance still tracks its own `currentPeriod` and `currentValue` so +a single worker returns the same value for `period` consecutive calls +(e.g. the same table id is bound for all `count: ` inserts of one +transaction). When the period is exhausted the instance fetches the next +value from the shared shuffle. + +The 2-arg (legacy / non-worker) constructor remains fully per-instance: +it owns its own shuffled list and reshuffles it on exhaust independently. +*/ + +public class RandomUniqueCyclicIntGen implements BaseUtil { + + /* + * Shared, JVM-wide shuffle state keyed by the original + * (lowerRange, upperRange, period) parameters. See class-level comment + * for rationale; same pattern as PrimaryIntGen.SHARED_COUNTERS and + * CyclicSeqIntGenWithPeriod.SHARED_VALUE_COUNTERS. + */ + private static final ConcurrentHashMap SHARED_SHUFFLE_STATES = + new ConcurrentHashMap<>(); + + /** + * Per-key shared state used by the worker-aware constructor. Holds the + * current shuffled view, an atomic cursor into it, and a lock used only + * to coordinate the re-shuffle when the cursor reaches the end. + */ + private static final class SharedShuffleState { + /** + * The active shuffled view. Replaced (not mutated) on every + * re-shuffle so concurrent readers always see a consistent + * snapshot via the volatile field. + */ + private volatile List shuffled; + private final AtomicInteger cursor = new AtomicInteger(0); + private final Random random = new Random(); + private final Object reshuffleLock = new Object(); + + SharedShuffleState(int lower, int upper) { + List initial = new ArrayList<>(upper - lower + 1); + for (int i = lower; i <= upper; i++) { + initial.add(i); + } + Collections.shuffle(initial, random); + this.shuffled = initial; + } + + int nextValue() { + while (true) { + List view = shuffled; + int idx = cursor.getAndIncrement(); + if (idx < view.size()) { + return view.get(idx); + } + // End of pass: only the first thread that finds the cursor + // beyond the active view re-shuffles; others fall through + // and retry against the fresh state. + synchronized (reshuffleLock) { + if (cursor.get() >= shuffled.size()) { + List fresh = new ArrayList<>(shuffled); + Collections.shuffle(fresh, random); + shuffled = fresh; + cursor.set(0); + } + } + } + } + } + + private final int period; + + /** Non-null only for the 2-arg (per-instance) constructor. */ + private final List localShuffled; + /** Non-null only for the 2-arg (per-instance) constructor. */ + private final Random localRandom; + /** Non-null only for the 3-arg (worker-aware) constructor. */ + private final SharedShuffleState sharedState; + + private int localIndex; + private int currentValue; + private int currentPeriod; + + public RandomUniqueCyclicIntGen(List values) { + if (!(values.size() >= 2 && values.size() <= 3)) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + int lower = ((Number) values.get(0)).intValue(); + int upper = ((Number) values.get(1)).intValue(); + this.period = values.size() == 3 ? ((Number) values.get(2)).intValue() : 1; + validate(lower, upper, this.period); + + this.localShuffled = new ArrayList<>(upper - lower + 1); + for (int i = lower; i <= upper; i++) { + this.localShuffled.add(i); + } + this.localRandom = new Random(); + Collections.shuffle(this.localShuffled, this.localRandom); + this.sharedState = null; + + this.localIndex = 0; + this.currentValue = lower; + // Force the first run() call to fetch the first value from the shuffle. + this.currentPeriod = this.period; + } + + public RandomUniqueCyclicIntGen(List values, int workerId, int totalWorkers) { + if (!(values.size() >= 2 && values.size() <= 3)) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + + int lower = ((Number) values.get(0)).intValue(); + int upper = ((Number) values.get(1)).intValue(); + this.period = values.size() == 3 ? ((Number) values.get(2)).intValue() : 1; + validate(lower, upper, this.period); + + /* + * Worker partitioning intentionally collapses into a single shared + * shuffle (same rationale as PrimaryIntGen / CyclicSeqIntGenWithPeriod): + * pre-dividing the range across workers works only if workers are + * created exactly once, but the optimal-threads search re-creates + * the worker pool each iteration. A shared shuffle + cursor keyed + * on the original params lets every worker -- and every iteration -- + * continue the same monotonically advancing random walk through + * the range, with re-shuffles at pass boundaries. + */ + this.sharedState = SHARED_SHUFFLE_STATES.computeIfAbsent( + stateKey(lower, upper, this.period), + k -> new SharedShuffleState(lower, upper)); + this.localShuffled = null; + this.localRandom = null; + + this.localIndex = 0; + this.currentValue = lower; + // Force the first run() call to fetch the first value from the shuffle. + this.currentPeriod = this.period; + } + + private static void validate(int lower, int upper, int period) { + if (upper < lower) { + throw new RuntimeException("Upper bound less than lower bound"); + } + if (period <= 0) { + throw new RuntimeException("Period must be greater than 0"); + } + } + + @Override + public Object run() { + if (currentPeriod >= period) { + currentPeriod = 0; + currentValue = (sharedState != null) ? sharedState.nextValue() : nextLocal(); + } + currentPeriod++; + return currentValue; + } + + private int nextLocal() { + if (localIndex >= localShuffled.size()) { + // End of pass: re-shuffle and start the next pass. + Collections.shuffle(localShuffled, localRandom); + localIndex = 0; + } + return localShuffled.get(localIndex++); + } + + private static String stateKey(int lower, int upper, int period) { + return lower + "_" + upper + "_" + period; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueCyclicStringGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueCyclicStringGen.java new file mode 100644 index 000000000..e011a7582 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueCyclicStringGen.java @@ -0,0 +1,192 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Random; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; + +/* +Description :- Random Unique Cyclic String Generator with period semantics. +String equivalent of RandomUniqueCyclicIntGen. Produces prefixed ID strings +("id-1000000", "id-1000001", ...) in a random order, visiting every value +in [lowerRange, upperRange] exactly once per pass. The list is re-shuffled +and iteration continues when exhausted. Each value is returned `period` +consecutive times before advancing. + +Params : +1. int: lowerRange (values[0]) :- Lower Range (inclusive). +2. int: upperRange (values[1]) :- Upper Range (inclusive). +3. int/String: (values[2], optional) :- If int, treated as period (number of + consecutive calls returning the same value). + If String, treated as prefix (period defaults to 1). +4. String: prefix (values[3], optional) :- Prefix for the generated string. + Only used when values[2] is the period (int). + Default: "id-" + +Eg:- +lowerRange: 0, upperRange: 3, period: 2, prefix: "id-" +Sample output (one possible interleaving): +"id-1000002" "id-1000002" "id-1000000" "id-1000000" "id-1000003" "id-1000003" "id-1000001" "id-1000001" +(pass 1 -- random permutation of [0..3], each value 2 times) +"id-1000001" "id-1000001" "id-1000003" "id-1000003" "id-1000000" "id-1000000" "id-1000002" "id-1000002" +(pass 2 -- fresh random permutation) +... + +Threading model: identical to RandomUniqueCyclicIntGen. The 3-arg +(worker-aware) constructor uses a JVM-wide shared shuffled list keyed on +(lowerRange, upperRange, period). Each instance tracks its own period +counter so a single worker returns the same string for `period` calls. +*/ + +public class RandomUniqueCyclicStringGen implements BaseUtil { + + private static final int OFFSET = 1000000; + + private static final ConcurrentHashMap SHARED_SHUFFLE_STATES = + new ConcurrentHashMap<>(); + + private static final class SharedShuffleState { + private volatile List shuffled; + private final AtomicInteger cursor = new AtomicInteger(0); + private final Random random = new Random(); + private final Object reshuffleLock = new Object(); + + SharedShuffleState(int lower, int upper) { + List initial = new ArrayList<>(upper - lower + 1); + for (int i = lower; i <= upper; i++) { + initial.add(i); + } + Collections.shuffle(initial, random); + this.shuffled = initial; + } + + int nextValue() { + while (true) { + List view = shuffled; + int idx = cursor.getAndIncrement(); + if (idx < view.size()) { + return view.get(idx); + } + synchronized (reshuffleLock) { + if (cursor.get() >= shuffled.size()) { + List fresh = new ArrayList<>(shuffled); + Collections.shuffle(fresh, random); + shuffled = fresh; + cursor.set(0); + } + } + } + } + } + + private final int period; + private final String prefix; + + private final List localShuffled; + private final Random localRandom; + private final SharedShuffleState sharedState; + + private int localIndex; + private int currentValue; + private int currentPeriod; + + private static int parsePeriod(List values) { + if (values.size() >= 3 && values.get(2) instanceof Number) { + return ((Number) values.get(2)).intValue(); + } + return 1; + } + + private static String parsePrefix(List values) { + if (values.size() >= 3 && values.get(2) instanceof String) { + return (String) values.get(2); + } + if (values.size() >= 4) { + return values.get(3).toString(); + } + return "id-"; + } + + public RandomUniqueCyclicStringGen(List values) { + if (values.size() < 2 || values.size() > 4) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + + ". Expected 2-4 params: [lowerRange, upperRange, period_or_prefix(optional), prefix(optional)]"); + } + + int lower = ((Number) values.get(0)).intValue(); + int upper = ((Number) values.get(1)).intValue(); + this.period = parsePeriod(values); + this.prefix = parsePrefix(values); + validate(lower, upper, this.period); + + this.localShuffled = new ArrayList<>(upper - lower + 1); + for (int i = lower; i <= upper; i++) { + this.localShuffled.add(i); + } + this.localRandom = new Random(); + Collections.shuffle(this.localShuffled, this.localRandom); + this.sharedState = null; + + this.localIndex = 0; + this.currentValue = lower; + this.currentPeriod = this.period; + } + + public RandomUniqueCyclicStringGen(List values, int workerId, int totalWorkers) { + if (values.size() < 2 || values.size() > 4) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + + ". Expected 2-4 params: [lowerRange, upperRange, period_or_prefix(optional), prefix(optional)]"); + } + + int lower = ((Number) values.get(0)).intValue(); + int upper = ((Number) values.get(1)).intValue(); + this.period = parsePeriod(values); + this.prefix = parsePrefix(values); + validate(lower, upper, this.period); + + this.sharedState = SHARED_SHUFFLE_STATES.computeIfAbsent( + stateKey(lower, upper, this.period), + k -> new SharedShuffleState(lower, upper)); + this.localShuffled = null; + this.localRandom = null; + + this.localIndex = 0; + this.currentValue = lower; + this.currentPeriod = this.period; + } + + private static void validate(int lower, int upper, int period) { + if (upper < lower) { + throw new RuntimeException("Upper bound less than lower bound"); + } + if (period <= 0) { + throw new RuntimeException("Period must be greater than 0"); + } + } + + @Override + public Object run() { + if (currentPeriod >= period) { + currentPeriod = 0; + currentValue = (sharedState != null) ? sharedState.nextValue() : nextLocal(); + } + currentPeriod++; + return prefix + (OFFSET + currentValue); + } + + private int nextLocal() { + if (localIndex >= localShuffled.size()) { + Collections.shuffle(localShuffled, localRandom); + localIndex = 0; + } + return localShuffled.get(localIndex++); + } + + private static String stateKey(int lower, int upper, int period) { + return "str_" + lower + "_" + upper + "_" + period; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueIntGen.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueIntGen.java new file mode 100644 index 000000000..ad145d5a5 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RandomUniqueIntGen.java @@ -0,0 +1,89 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import com.oltpbenchmark.DBWorkload; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Random; + +/* +Description :- Random Integer Primary key generator between a range with no duplicates. +Params : +1.int: lowerRange (values[0]) :- Lower Range for Integer Primary key. +2.int: upperRange (values[1]) :- Upper Range for Integer Primary key. + +Supports worker-based partitioning: +Each worker receives a unique sub-range with randomized, non-repeating values. +*/ + +public class RandomUniqueIntGen implements BaseUtil { + private final List shuffledValues; + private int index; + private static final Logger LOG = LoggerFactory.getLogger(DBWorkload.class); + public RandomUniqueIntGen(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + this.getClass()); + } + + int lowerRange = ((Number) values.get(0)).intValue(); + int upperRange = ((Number) values.get(1)).intValue(); + + if (upperRange < lowerRange) { + throw new RuntimeException("Upper bound less than lower bound"); + } + + this.shuffledValues = new ArrayList<>(); + for (int i = lowerRange; i <= upperRange; i++) { + this.shuffledValues.add(i); + } + + Collections.shuffle(this.shuffledValues, new Random()); + this.index = 0; + } + + public RandomUniqueIntGen(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + this.getClass()); + } + + int lower = ((Number) values.get(0)).intValue(); + int upper = ((Number) values.get(1)).intValue(); + + if (upper < lower) { + throw new RuntimeException("Upper bound less than lower bound"); + } + + int totalValues = upper - lower + 1; + int baseChunkSize = totalValues / totalWorkers; + int remainder = totalValues % totalWorkers; + + int startIndex = workerId * baseChunkSize + Math.min(workerId, remainder); + int chunkSize = baseChunkSize + (workerId < remainder ? 1 : 0); + + int startValue = lower + startIndex; + int endValue = startValue + chunkSize - 1; + + if (startValue > upper || chunkSize <= 0) { + throw new RuntimeException("Worker " + workerId + " has no range to work on."); + } + + this.shuffledValues = new ArrayList<>(); + for (int i = startValue; i <= endValue; i++) { + this.shuffledValues.add(i); + } + + Collections.shuffle(this.shuffledValues, new Random()); + this.index = 0; + } + + @Override + public Object run() { + if (index >= shuffledValues.size()) { + throw new RuntimeException("No more unique values to generate in the given range."); + } + return shuffledValues.get(index++); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RangeDivider.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RangeDivider.java new file mode 100644 index 000000000..97a9543ab --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RangeDivider.java @@ -0,0 +1,43 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.util.List; + +/* +Description: Divides a total range into equal chunks and assigns each worker a non-overlapping range based on its workerId. Stateless and safe across multiple workloads without needing a reset. + +Params: +1. int: total (values[0]) - The total range to divide. +2. int: divisor (values[1]) - Number of chunks to divide into. +3. int: mode (values[2], optional) - 0 returns start_range (default), 1 returns end_range. + +Eg: +total: 1000, divisor: 5 +Worker 0 gets: start=0, end=200 +Worker 1 gets: start=200, end=400 and so on. +*/ +public class RangeDivider implements BaseUtil { + + private final int startRange; + + public RangeDivider(List values, int workerId, int totalWorkers) { + if (values.size() != 1) { + throw new RuntimeException("RangeDivider requires 1 parameter: " + + "[total]"); + } + + int total = values.get(0) instanceof Number ? ((Number) values.get(0)).intValue() : Integer.parseInt(values.get(0).toString()); + + if (total <= 0) { + throw new RuntimeException("Total must be positive"); + } + + int chunkSize = total / totalWorkers; + + this.startRange = workerId * chunkSize; + } + + @Override + public Object run() { + return startRange; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RowRandomBoundedInt.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RowRandomBoundedInt.java new file mode 100644 index 000000000..246fb67c5 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RowRandomBoundedInt.java @@ -0,0 +1,42 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + + +public class RowRandomBoundedInt implements BaseUtil { + private final int lowValue; + private final int highValue; + + public RowRandomBoundedInt(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowValue = ((Number) values.get(0)).intValue(); + this.highValue = ((Number) values.get(1)).intValue(); + if (lowValue > highValue) + throw new RuntimeException("Please enter correct value for max and min value"); + + } + + public RowRandomBoundedInt(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowValue = ((Number) values.get(0)).intValue(); + this.highValue = ((Number) values.get(1)).intValue(); + if (lowValue > highValue) + throw new RuntimeException("Please enter correct value for max and min value"); + + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, + NoSuchMethodException, InstantiationException, IllegalAccessException { + return ThreadLocalRandom.current().nextInt(lowValue, highValue + 1); + } +} + diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RowRandomBoundedLong.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RowRandomBoundedLong.java new file mode 100644 index 000000000..113e2f7cc --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/RowRandomBoundedLong.java @@ -0,0 +1,37 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + + +import java.util.List; + + +public class RowRandomBoundedLong implements BaseUtil { + private final long lowValue; + private final long highValue; + + public RowRandomBoundedLong(List values) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowValue = ((Number) values.get(0)).longValue(); + this.highValue = ((Number) values.get(1)).longValue(); + if (lowValue > highValue) + throw new RuntimeException("Please enter correct value for max and min value"); + } + + public RowRandomBoundedLong(List values, int workerId, int totalWorkers) { + if (values.size() != 2) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass()); + } + this.lowValue = ((Number) values.get(0)).longValue(); + this.highValue = ((Number) values.get(1)).longValue(); + if (lowValue > highValue) + throw new RuntimeException("Please enter correct value for max and min value"); + } + + @Override + public Object run() { + return lowValue + (long) (Math.random() * (highValue - lowValue)); + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/SQLUtil.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/SQLUtil.java new file mode 100644 index 000000000..e56f6c753 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/SQLUtil.java @@ -0,0 +1,594 @@ +/* +package com.oltpbenchmark.benchmarks.featurebench.utils; + +*/ +/* + * Copyright 2020 by OLTPBenchmark Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *//* + + + +import com.oltpbenchmark.api.BenchmarkModule; +import com.oltpbenchmark.catalog.*; +import com.oltpbenchmark.types.DatabaseType; +import com.oltpbenchmark.types.SortDirectionType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.*; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +public abstract class SQLUtil { + private static final Logger LOG = LoggerFactory.getLogger(com.oltpbenchmark.benchmarks.featurebench.utils.SQLUtil.class); + + private static final DateFormat[] timestamp_formats = new DateFormat[]{ + new SimpleDateFormat("yyyy-MM-dd"), + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"), + }; + + */ +/** + * Return a long from the given object + * Handles the different cases from the various DBMSs + * + * @param obj + * @return + *//* + + public static Long getLong(Object obj) { + if (obj == null) { + return (null); + } + + if (obj instanceof Long) { + return (Long) obj; + } else if (obj instanceof Integer) { + return ((Integer) obj).longValue(); + } else if (obj instanceof BigDecimal) { + return ((BigDecimal) obj).longValue(); + } + + LOG.warn("BAD BAD BAD: returning null because getLong does not support {}", obj.getClass()); + + return (null); + } + + public static Integer getInteger(Object obj) { + if (obj == null) { + return (null); + } + + if (obj instanceof Integer) { + return (Integer) obj; + } else if (obj instanceof Long) { + return ((Long) obj).intValue(); + } else if (obj instanceof BigDecimal) { + return ((BigDecimal) obj).intValue(); + } + + LOG.warn("BAD BAD BAD: returning null because getInteger does not support {}", obj.getClass()); + + return (null); + } + + */ +/** + * Return a double from the given object + * Handles the different cases from the various DBMSs + * + * @param obj + * @return + *//* + + public static Double getDouble(Object obj) { + if (obj == null) { + return (null); + } + + if (obj instanceof Double) { + return (Double) obj; + } else if (obj instanceof Float) { + return ((Float) obj).doubleValue(); + } else if (obj instanceof BigDecimal) { + return ((BigDecimal) obj).doubleValue(); + } + + LOG.warn("BAD BAD BAD: returning null because getDouble does not support {}", obj.getClass()); + + return (null); + } + + public static String getString(Object obj) { + if (obj == null) { + return (null); + } + + if (obj instanceof String) { + return (String) obj; + } + + LOG.warn("BAD BAD BAD: returning null because getString does not support {}", obj.getClass()); + + return (null); + } + + */ +/** + * Return a double from the given object + * Handles the different cases from the various DBMSs + * + * @param obj + * @return + *//* + + public static Timestamp getTimestamp(Object obj) { + if (obj == null) { + return (null); + } + + if (obj instanceof Timestamp) { + return (Timestamp) obj; + } else if (obj instanceof Date) { + return new Timestamp(((Date) obj).getTime()); + } + + Long timestamp = com.oltpbenchmark.benchmarks.featurebench.utils.SQLUtil.getLong(obj); + return (timestamp != null ? new Timestamp(timestamp) : null); + } + + */ +/** + * Return the internal sequence name for the given Column + * + * @param dbType + * @param catalog_col + * @return + *//* + + public static String getSequenceName(DatabaseType dbType, Column catalog_col) { + Table catalog_tbl = catalog_col.getTable(); + + if (dbType == DatabaseType.POSTGRES) { + return String.format("pg_get_serial_sequence('%s', '%s')", + catalog_tbl.getName(), catalog_col.getName()); + } else { + LOG.warn("Unexpected request for sequence name on {} using {}", catalog_col, dbType); + } + return (null); + } + + + public static Object[] getRowAsArray(ResultSet rs) throws SQLException { + ResultSetMetaData rs_md = rs.getMetaData(); + int num_cols = rs_md.getColumnCount(); + Object[] data = new Object[num_cols]; + for (int i = 0; i < num_cols; i++) { + data[i] = rs.getObject(i + 1); + } + return data; + } + + public static List toList(ResultSet rs) throws SQLException { + ResultSetMetaData rs_md = rs.getMetaData(); + int num_cols = rs_md.getColumnCount(); + + List results = new ArrayList<>(); + while (rs.next()) { + Object[] row = new Object[num_cols]; + for (int i = 0; i < num_cols; i++) { + row[i] = rs.getObject(i + 1); + } + results.add(row); + } + + return results; + } + + */ +/** + * For the given string representation of a value, convert it to the proper + * object based on its sqlType + * + * @param sqlType + * @param value + * @return + * @see Types + *//* + + public static Object castValue(int sqlType, String value) { + Object ret = null; + switch (sqlType) { + case Types.CHAR: + case Types.VARCHAR: + case Types.NCHAR: + case Types.NVARCHAR: { + ret = value; + break; + } + case Types.TINYINT: + case Types.SMALLINT: { + ret = Short.parseShort(value); + break; + } + case Types.INTEGER: { + ret = Integer.parseInt(value); + break; + } + case Types.BIGINT: { + ret = Long.parseLong(value); + break; + } + case Types.BOOLEAN: { + ret = Boolean.parseBoolean(value); + break; + } + case Types.DECIMAL: + case Types.REAL: + case Types.DOUBLE: { + ret = Double.parseDouble(value); + break; + } + case Types.FLOAT: { + ret = Float.parseFloat(value); + break; + } + case Types.DATE: + case Types.TIME: + case Types.TIMESTAMP: { + for (DateFormat f : timestamp_formats) { + try { + ret = f.parse(value); + } catch (ParseException ex) { + // Ignore... + } + if (ret != null) { + break; + } + } + if (ret == null) { + throw new RuntimeException("Failed to parse timestamp '" + value + "'"); + } + break; + } + default: + LOG.warn("Unexpected SQL Type '{}' for value '{}'", sqlType, value); + } + return (ret); + } + + */ +/** + * Returns true if the given sqlType identifier is a String data type + * + * @param sqlType + * @return + * @see Types + *//* + + public static boolean isStringType(int sqlType) { + switch (sqlType) { + case Types.CHAR: + case Types.VARCHAR: + case Types.NCHAR: + case Types.NVARCHAR: { + return (true); + } + default: + return (false); + } + } + + */ +/** + * Returns true if the given sqlType identifier is an Integer data type + * + * @param sqlType + * @return + * @see Types + *//* + + public static boolean isIntegerType(int sqlType) { + switch (sqlType) { + case Types.TINYINT: + case Types.SMALLINT: + case Types.INTEGER: + case Types.BIGINT: { + return (true); + } + default: + return (false); + } + } + + */ +/** + * Return the COUNT(*) SQL to calculate the number of records + * + * @param dbType + * @param catalog_tbl + * @return SQL for select count execution + *//* + + public static String getCountSQL(DatabaseType dbType, Table catalog_tbl) { + return com.oltpbenchmark.benchmarks.featurebench.utils.SQLUtil.getCountSQL(dbType, catalog_tbl, "*"); + } + + */ +/** + * Return the COUNT() SQL to calculate the number of records. + * Will use the col parameter as the column that is counted + * + * @param dbType + * @param catalog_tbl + * @param col + * @return SQL for select count execution + *//* + + public static String getCountSQL(DatabaseType dbType, Table catalog_tbl, String col) { + String tableName = (dbType.shouldEscapeNames() ? catalog_tbl.getEscapedName() : catalog_tbl.getName()); + return String.format("SELECT COUNT(%s) FROM %s", col, tableName.trim()); + } + + */ +/** + * Automatically generate the 'INSERT' SQL string for this table + * with a batch size of 1 + * + * @param catalog_tbl + * @param db_type + * @param exclude_columns + * @return + *//* + + public static String getInsertSQL(Table catalog_tbl, DatabaseType db_type, int... exclude_columns) { + return com.oltpbenchmark.benchmarks.featurebench.utils.SQLUtil.getInsertSQL(catalog_tbl, db_type, 1, exclude_columns); + } + + */ +/** + * Automatically generate the 'INSERT' SQL string for this table + * + * @param catalog_tbl + * @param db_type + * @param batchSize the number of sets of parameters + * that should be included in the insert + * @param exclude_columns + * @return + *//* + + public static String getInsertSQL(Table catalog_tbl, DatabaseType db_type, int batchSize, int... exclude_columns) { + boolean show_cols = db_type.shouldIncludeColumnNames(); + boolean escape_names = db_type.shouldEscapeNames(); + + StringBuilder sb = new StringBuilder(); + if (db_type.equals(DatabaseType.PHOENIX)) { + sb.append("UPSERT"); + } else { + sb.append("INSERT"); + } + sb.append(" INTO ") + .append(escape_names ? catalog_tbl.getEscapedName() : catalog_tbl.getName()); + + StringBuilder values = new StringBuilder(); + boolean first; + + // Column Names + // XXX: Disabled because of case issues with HSQLDB + if (show_cols) { + sb.append(" ("); + } + first = true; + + // These are the column offset that we want to exclude + Set excluded = new HashSet<>(); + for (int ex : exclude_columns) { + excluded.add(ex); + } + + for (Column catalog_col : catalog_tbl.getColumns()) { + if (excluded.contains(catalog_col.getIndex())) { + continue; + } + if (!first) { + if (show_cols) { + sb.append(", "); + } + values.append(", "); + } + if (show_cols) { + sb.append(escape_names ? catalog_col.getEscapedName() : catalog_col.getName()); + } + values.append("?"); + first = false; + } + if (show_cols) { + sb.append(")"); + } + + // Values + sb.append(" VALUES "); + for (int i = 0; i < batchSize; i++) { + sb.append("(").append(values.toString()).append(")"); + } + + return (sb.toString()); + } + + public static String getMaxColSQL(DatabaseType dbType, Table catalog_tbl, String col) { + String tableName = (dbType.shouldEscapeNames() ? catalog_tbl.getEscapedName() : catalog_tbl.getName()); + return String.format("SELECT MAX(%s) FROM %s", col, tableName); + } + + public static String selectColValues(DatabaseType databaseType, Table catalog_tbl, String col) { + String tableName = (databaseType.shouldEscapeNames() ? catalog_tbl.getEscapedName() : catalog_tbl.getName()); + return String.format("SELECT %s FROM %s", + col, tableName); + } + + */ +/** + * Extract the catalog from the database. + *//* + + public static AbstractCatalog getCatalog(BenchmarkModule benchmarkModule, DatabaseType databaseType, Connection connection) throws SQLException { + switch (databaseType) { + case NOISEPAGE: // fall-through + case SQLITE: + case HSQLDB: + return getCatalogHSQLDB(benchmarkModule); + default: + return getCatalogDirect(databaseType, connection); + } + } + + */ +/** + * Create an in-memory instance of HSQLDB to extract all of the catalog information. + *

+ * This supports databases that may not support all of the SQL standard just yet. + * + * @return + *//* + + private static AbstractCatalog getCatalogHSQLDB(BenchmarkModule benchmarkModule) { + return new HSQLDBCatalog(benchmarkModule); + } + + */ +/** + * Extract catalog information from the database directly. + *//* + + private static AbstractCatalog getCatalogDirect(DatabaseType databaseType, Connection connection) throws SQLException { + DatabaseMetaData md = connection.getMetaData(); + + String separator = md.getIdentifierQuoteString(); + String catalog = connection.getCatalog(); + String schema = connection.getSchema(); + + Map tables = new HashMap<>(); + + List excludedColumns = new ArrayList<>(); + + if (databaseType.equals(DatabaseType.COCKROACHDB)) { + // cockroachdb has a hidden column called "ROWID" that should not be directly used via the catalog + excludedColumns.add("ROWID"); + } + + + try (ResultSet table_rs = md.getTables(catalog, schema, null, new String[]{"TABLE"})) { + while (table_rs.next()) { + + String table_type = table_rs.getString("TABLE_TYPE"); + if (!table_type.equalsIgnoreCase("TABLE")) { + continue; + } + + String table_name = table_rs.getString("TABLE_NAME"); + Table catalog_tbl = new Table(table_name, separator); + + try (ResultSet col_rs = md.getColumns(catalog, schema, table_name, null)) { + while (col_rs.next()) { + String col_name = col_rs.getString("COLUMN_NAME"); + + if (excludedColumns.contains(col_name.toUpperCase())) { + LOG.debug("found excluded column [{}] for in database type [{}]. Skipping...", col_name, databaseType); + continue; + } + + int col_type = col_rs.getInt("DATA_TYPE"); + Integer col_size = col_rs.getInt("COLUMN_SIZE"); + boolean col_nullable = col_rs.getString("IS_NULLABLE").equalsIgnoreCase("YES"); + + Column catalog_col = new Column(col_name, separator, catalog_tbl, col_type, col_size, col_nullable); + + catalog_tbl.addColumn(catalog_col); + } + } + + try (ResultSet idx_rs = md.getIndexInfo(catalog, schema, table_name, false, false)) { + while (idx_rs.next()) { + int idx_type = idx_rs.getShort("TYPE"); + if (idx_type == DatabaseMetaData.tableIndexStatistic) { + continue; + } + boolean idx_unique = (!idx_rs.getBoolean("NON_UNIQUE")); + String idx_name = idx_rs.getString("INDEX_NAME"); + int idx_col_pos = idx_rs.getInt("ORDINAL_POSITION") - 1; + String idx_col_name = idx_rs.getString("COLUMN_NAME"); + String sort = idx_rs.getString("ASC_OR_DESC"); + SortDirectionType idx_direction; + if (sort != null) { + idx_direction = sort.equalsIgnoreCase("A") ? SortDirectionType.ASC : SortDirectionType.DESC; + } else { + idx_direction = null; + } + + Index catalog_idx = catalog_tbl.getIndex(idx_name); + if (catalog_idx == null) { + catalog_idx = new Index(idx_name, separator, catalog_tbl, idx_type, idx_unique); + catalog_tbl.addIndex(catalog_idx); + } + + catalog_idx.addColumn(idx_col_name, idx_direction, idx_col_pos); + } + } + + tables.put(table_name, catalog_tbl); + } + } + + for (Table table : tables.values()) { + try (ResultSet fk_rs = md.getImportedKeys(catalog, schema, table.getName())) { + while (fk_rs.next()) { + String colName = fk_rs.getString("FKCOLUMN_NAME"); + + String fk_tableName = fk_rs.getString("PKTABLE_NAME"); + String fk_colName = fk_rs.getString("PKCOLUMN_NAME"); + + Table fk_table = tables.get(fk_tableName); + Column fk_col = fk_table.getColumnByName(fk_colName); + + Column catalog_col = table.getColumnByName(colName); + catalog_col.setForeignKey(fk_col); + } + } + } + + return new Catalog(tables); + } + + public static boolean isDuplicateKeyException(Exception ex) { + // MYSQL + if (ex instanceof SQLIntegrityConstraintViolationException) { + return (true); + } else if (ex instanceof SQLException) { + SQLException sqlEx = (SQLException) ex; + + // POSTGRES + if (sqlEx.getSQLState().contains("23505")) { + return (true); + } + } + return (false); + } +}*/ diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/SeededRandomNumber.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/SeededRandomNumber.java new file mode 100644 index 000000000..24b87b416 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/SeededRandomNumber.java @@ -0,0 +1,50 @@ +package com.oltpbenchmark.benchmarks.featurebench.utils; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Random; + +/** + * Generates a deterministic random number based on a seed. + * This ensures reproducible numbers for consistent benchmarking across runs. + * + * Usage: SeededRandomNumber with params [minValue, maxValue, seed] + * Example: SeededRandomNumber with params [1, 1000000, 12345] + * generates a number between 1 and 1000000 using seed 12345 + */ +public class SeededRandomNumber implements BaseUtil { + + private Integer minValue; + private Integer maxValue; + private long seed; + + public SeededRandomNumber(List values) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected: [minValue, maxValue, seed]"); + } + this.minValue = ((Number) values.get(0)).intValue(); + this.maxValue = ((Number) values.get(1)).intValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + this.seed = ((Number) values.get(2)).longValue(); + } + + public SeededRandomNumber(List values, int workerId, int totalWorkers) { + if (values.size() != 3) { + throw new RuntimeException("Incorrect number of parameters for util function " + + this.getClass() + ". Expected: [minValue, maxValue, seed]"); + } + this.minValue = ((Number) values.get(0)).intValue(); + this.maxValue = ((Number) values.get(1)).intValue(); + if (minValue > maxValue) + throw new RuntimeException("Please enter correct bounds for max and min value"); + this.seed = ((Number) values.get(2)).longValue(); + } + + @Override + public Object run() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + Random random = new Random(seed); + return random.nextInt((maxValue - minValue) + 1) + minValue; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/TextGenerator.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/TextGenerator.java new file mode 100644 index 000000000..df575502a --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/utils/TextGenerator.java @@ -0,0 +1,184 @@ +/* +package com.oltpbenchmark.benchmarks.featurebench.utils; + +*/ +/* + * Copyright 2020 by OLTPBenchmark Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *//* + + + +import java.util.Arrays; +import java.util.Random; + +*/ +/** + * Fast Random Text Generator + * + * @author pavlo + *//* + +public abstract class TextGenerator { + + private static final int CHAR_START = 32; // [space] + private static final int CHAR_STOP = 126; // [~] + private static final char[] CHAR_SYMBOLS = new char[1 + CHAR_STOP - CHAR_START]; + + static { + for (int i = 0; i < CHAR_SYMBOLS.length; i++) { + CHAR_SYMBOLS[i] = (char) (CHAR_START + i); + } + } + + private static final int[] FAST_MASKS = { + 554189328, // 10000 + 277094664, // 01000 + 138547332, // 00100 + 69273666, // 00010 + 34636833, // 00001 + 346368330, // 01010 + 727373493, // 10101 + 588826161, // 10001 + 935194491, // 11011 + 658099827, // 10011 + }; + + + */ +/** + * Generate a random block of text as a char array + * + * @param rng + * @param strLen + * @return + *//* + + public static char[] randomChars(Random rng, int strLen) { + char[] chars = new char[strLen]; + return randomFastChars(rng, chars); + } + + public static char[] randomChars(Random rng, char[] chars) { + for (int i = 0; i < chars.length; i++) { + chars[i] = CHAR_SYMBOLS[rng.nextInt(CHAR_SYMBOLS.length)]; + } // FOR + return (chars); + } + + */ +/** + * Faster (pseudo) random number generator + * + * @param rng + * @param chars + * @return + *//* + + public static char[] randomFastChars(Random rng, char[] chars) { + // Ok so now the goal of this is to reduce the number of times that we have to + // invoke a random number. We'll do this by grabbing a single random int + // and then taking different bitmasks + + int num_rounds = chars.length / FAST_MASKS.length; + int i = 0; + for (int ctr = 0; ctr < num_rounds; ctr++) { + int rand = rng.nextInt(10000); // CHAR_SYMBOLS.length); + for (int mask : FAST_MASKS) { + chars[i++] = CHAR_SYMBOLS[(rand | mask) % CHAR_SYMBOLS.length]; + } + } + // Use the old way for the remaining characters + // I am doing this because I am too lazy to think of something more clever + for (; i < chars.length; i++) { + chars[i] = CHAR_SYMBOLS[rng.nextInt(CHAR_SYMBOLS.length)]; + } + return (chars); + } + + */ +/** + * Returns a new string filled with random text + * + * @param rng + * @param strLen + * @return + *//* + + public static String randomStr(Random rng, int strLen) { + return new String(randomChars(rng, strLen)); + } + + */ +/** + * Resize the given block of text by the delta and add random characters + * to the new space in the array. Returns a new character array + * + * @param rng + * @param orig + * @param delta + * @return + *//* + + public static char[] resizeText(Random rng, char[] orig, int delta) { + char[] chars = Arrays.copyOf(orig, orig.length + delta); + for (int i = orig.length; i < chars.length; i++) { + chars[i] = CHAR_SYMBOLS[rng.nextInt(CHAR_SYMBOLS.length)]; + } + return (chars); + } + + */ +/** + * Permute a random portion of the origin text + * Returns the same character array that was given as input + * + * @param rng + * @param chars + * @return + *//* + + public static char[] permuteText(Random rng, char[] chars) { + // We will try to be fast about this and permute the text by blocks + int idx = 0; + int blockSize = chars.length / 32; + + // We'll generate one random number and check whether its bit is set to zero + // Hopefully this is faster than having to generate a bunch of random + // integers + int rand = rng.nextInt(); + // If the number is zero, then flip one bit so that we make sure that + // we change at least one block + if (rand == 0) { + rand = 1; + } + for (int bit = 0; bit < 32; bit++) { + if ((rand >> bit & 1) == 1) { + for (int i = 0; i < blockSize; i++) { + chars[idx + i] = CHAR_SYMBOLS[rng.nextInt(CHAR_SYMBOLS.length)]; + } + } + idx += blockSize; + if (idx >= chars.length) { + break; + } + } + + return (chars); + } + +} + +*/ diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/Bindings.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/Bindings.java new file mode 100644 index 000000000..f3eb1b0c4 --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/Bindings.java @@ -0,0 +1,35 @@ +package com.oltpbenchmark.benchmarks.featurebench.workerhelpers; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +public class Bindings { + @JsonProperty("name") + public String name; + + @JsonProperty("params") + public List params; + + + public Bindings(String name, List params) { + this.name = name; + this.params = params; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getParams() { + return params; + } + + public void setParams(List params) { + this.params = params; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/ExecuteRule.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/ExecuteRule.java new file mode 100644 index 000000000..aeb7d90ae --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/ExecuteRule.java @@ -0,0 +1,47 @@ +package com.oltpbenchmark.benchmarks.featurebench.workerhelpers; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +public class ExecuteRule { + @JsonProperty("name") + public String name; + + @JsonProperty("weight") + public double weight; + + @JsonProperty("queries") + public List queries; + + +// public ExecuteRule(String name, double weight, List queries) { +// this.name = name; +// this.weight = weight; +// this.queries = queries; +// } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getWeight() { + return weight; + } + + public void setWeight(double weight) { + this.weight = weight; + } + + public List getQueries() { + return queries; + } + + public void setQueries(List queries) { + this.queries = queries; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/Query.java b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/Query.java new file mode 100644 index 000000000..9ee8a4cfa --- /dev/null +++ b/src/main/java/com/oltpbenchmark/benchmarks/featurebench/workerhelpers/Query.java @@ -0,0 +1,118 @@ +package com.oltpbenchmark.benchmarks.featurebench.workerhelpers; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.oltpbenchmark.benchmarks.featurebench.helpers.UtilToMethod; +import java.util.regex.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class Query { + @JsonProperty("query") + public String query; + public int count = 1; + public int explainPlanRCValidateCount = -1; + public int pattern_count = -1; + public List baseUtils; + public boolean isSelectQuery = false; + public boolean isUpdateQuery = false; + public boolean isReturningQuery = false; + + public List getBaseUtils() { + return baseUtils; + } + + public void setBaseUtils(List baseUtils) { + if (this.pattern_count != -1) { + this.baseUtils = repeatList(baseUtils, this.pattern_count); + } else { + this.baseUtils = baseUtils; + } + } + + public String getQuery() { + return query; + } + + public void setCount(int count) { + this.count = count; + } + + public int getCount() { + return count; + } + + public void setExplainPlanRCValidateCount(int explainPlanRCValidateCount) { + this.explainPlanRCValidateCount = explainPlanRCValidateCount; + } + + public int getExplainPlanRCValidateCount() { + return explainPlanRCValidateCount; + } + + public void setQuery(String query) { + this.query = processQuery(query); + // Precompute once whether this statement returns a result set via a RETURNING + // clause (e.g. INSERT/UPDATE/DELETE ... RETURNING). Computing it here avoids + // calling PreparedStatement.toString() -- which rebuilds the full parameterized + // SQL string -- on every execution in the worker hot loop. + this.isReturningQuery = this.query != null + && this.query.toUpperCase().contains(" RETURNING "); + } + + public boolean isSelectQuery() { + return isSelectQuery; + } + + public boolean isReturningQuery() { + return isReturningQuery; + } + + public void setSelectQuery(boolean selectQuery) { + isSelectQuery = selectQuery; + } + + public boolean isUpdateQuery() { + return isUpdateQuery; + } + + public void setUpdateQuery(boolean updateQuery) { + isUpdateQuery = updateQuery; + } + + public int getPattern_count() { + return pattern_count; + } + + public void setPattern_count(int pattern_count) { + this.pattern_count = pattern_count; + } + + public String processQuery(String query) { + if (this.pattern_count == -1) { + return query; + } + Pattern pattern = Pattern.compile("\\[(.*?)\\]\\[pattern_count]"); + Matcher matcher = pattern.matcher(query); + StringBuilder result = new StringBuilder(); + while (matcher.find()) { + String placeholderPattern = matcher.group(1); + String repeatedPattern = String.join(",", Collections.nCopies(this.pattern_count, placeholderPattern)); + matcher.appendReplacement(result, repeatedPattern); + } + matcher.appendTail(result); + return result.toString(); + } + + public List repeatList(List inputList, int times) { + if (times <= 0) { + throw new IllegalArgumentException("Repeat count must be greater than 0."); + } + int size = inputList.size(); + List result = new ArrayList<>(size * times); // Pre-size the list for better performance + for (int i = 0; i < times; i++) { + result.addAll(inputList); + } + return result; + } +} diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java index 564870d85..4be72fdc9 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java @@ -306,7 +306,9 @@ private void loadUsers(Connection conn, int lo, int hi) throws SQLException { userInsert.clearBatch(); } } - if (this.getDatabaseType() == DatabaseType.POSTGRES || this.getDatabaseType() == DatabaseType.COCKROACHDB) { + if (this.getDatabaseType() == DatabaseType.POSTGRES || + this.getDatabaseType() == DatabaseType.COCKROACHDB || + this.getDatabaseType() == DatabaseType.YUGABYTE) { this.updateAutoIncrement(conn, catalog_tbl.getColumn(0), this.benchmark.num_users); } if (LOG.isDebugEnabled()) { @@ -369,7 +371,9 @@ private void loadPages(Connection conn, int lo, int hi) throws SQLException { this.addToTableCount(catalog_tbl.getName(), batchSize); } } - if (this.getDatabaseType() == DatabaseType.POSTGRES || this.getDatabaseType() == DatabaseType.COCKROACHDB) { + if (this.getDatabaseType() == DatabaseType.POSTGRES || + this.getDatabaseType() == DatabaseType.COCKROACHDB || + this.getDatabaseType() == DatabaseType.YUGABYTE) { this.updateAutoIncrement(conn, catalog_tbl.getColumn(0), this.benchmark.num_pages); } if (LOG.isDebugEnabled()) { @@ -567,7 +571,9 @@ private void loadRevision(Connection conn) throws SQLException { } } } - if (this.getDatabaseType() == DatabaseType.POSTGRES || this.getDatabaseType() == DatabaseType.COCKROACHDB) { + if (this.getDatabaseType() == DatabaseType.POSTGRES || + this.getDatabaseType() == DatabaseType.COCKROACHDB || + this.getDatabaseType() == DatabaseType.YUGABYTE) { this.updateAutoIncrement(conn, textTable.getColumn(0), rev_id); this.updateAutoIncrement(conn, revTable.getColumn(0), rev_id); } diff --git a/src/main/java/com/oltpbenchmark/jdbc/AutoIncrementPreparedStatement.java b/src/main/java/com/oltpbenchmark/jdbc/AutoIncrementPreparedStatement.java index b2576807e..cff1a7ffc 100644 --- a/src/main/java/com/oltpbenchmark/jdbc/AutoIncrementPreparedStatement.java +++ b/src/main/java/com/oltpbenchmark/jdbc/AutoIncrementPreparedStatement.java @@ -41,7 +41,7 @@ public AutoIncrementPreparedStatement(DatabaseType dbType, PreparedStatement stm */ @Override public ResultSet getGeneratedKeys() throws SQLException { - if (this.dbType == DatabaseType.POSTGRES || this.dbType == DatabaseType.COCKROACHDB) { + if (this.dbType == DatabaseType.POSTGRES || this.dbType == DatabaseType.COCKROACHDB || this.dbType==DatabaseType.YUGABYTE) { return this.stmt.getResultSet(); } else { return this.stmt.getGeneratedKeys(); diff --git a/src/main/java/com/oltpbenchmark/types/DatabaseType.java b/src/main/java/com/oltpbenchmark/types/DatabaseType.java index 55ddb6249..f24eb9741 100644 --- a/src/main/java/com/oltpbenchmark/types/DatabaseType.java +++ b/src/main/java/com/oltpbenchmark/types/DatabaseType.java @@ -36,6 +36,7 @@ public enum DatabaseType { H2(true, false), HSQLDB(false, false), POSTGRES(false, false), + YUGABYTE(false, false), MARIADB(true, false), MONETDB(false, false), MYROCKS(true, false), diff --git a/src/main/java/com/oltpbenchmark/types/TransactionStatus.java b/src/main/java/com/oltpbenchmark/types/TransactionStatus.java index df3745f00..43987be96 100644 --- a/src/main/java/com/oltpbenchmark/types/TransactionStatus.java +++ b/src/main/java/com/oltpbenchmark/types/TransactionStatus.java @@ -49,5 +49,10 @@ public enum TransactionStatus { /** * Transaction encountered an error and was not retried */ - ERROR + ERROR, + + /** + * Query returned zero number of rows + */ + ZERO_ROWS } diff --git a/src/main/java/com/oltpbenchmark/util/JSONUtil.java b/src/main/java/com/oltpbenchmark/util/JSONUtil.java index aad40aa93..d88539059 100644 --- a/src/main/java/com/oltpbenchmark/util/JSONUtil.java +++ b/src/main/java/com/oltpbenchmark/util/JSONUtil.java @@ -342,7 +342,7 @@ protected static void readMapField(final JSONObject json_object, final Map map, @SuppressWarnings("unchecked") protected static void readCollectionField(final JSONArray json_array, final Collection collection, final Stack inner_classes) throws Exception { // We need to figure out what the inner type of the collection is - // If it's a Collection or a Map, then we need to instantiate it before + // If it's a Collection or a Map, then we need to instantiate it before // we can call readFieldValue() again for it. Class inner_class = inner_classes.pop(); Collection> inner_interfaces = ClassUtil.getInterfaces(inner_class); diff --git a/src/main/java/com/oltpbenchmark/util/ResultWriter.java b/src/main/java/com/oltpbenchmark/util/ResultWriter.java index ae3aff33c..ee36f5895 100644 --- a/src/main/java/com/oltpbenchmark/util/ResultWriter.java +++ b/src/main/java/com/oltpbenchmark/util/ResultWriter.java @@ -25,10 +25,14 @@ import com.oltpbenchmark.api.collectors.DBParameterCollector; import com.oltpbenchmark.api.collectors.DBParameterCollectorGen; import com.oltpbenchmark.types.DatabaseType; +import org.json.JSONObject; import org.apache.commons.cli.CommandLine; +import org.apache.commons.configuration2.HierarchicalConfiguration; import org.apache.commons.configuration2.XMLConfiguration; +import org.apache.commons.configuration2.YAMLConfiguration; import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.commons.configuration2.io.FileHandler; +import org.apache.commons.configuration2.tree.ImmutableNode; import java.io.PrintStream; import java.util.*; @@ -98,17 +102,16 @@ public void writeConfig(PrintStream os) throws ConfigurationException { handler.save(os); } + public void writeYamlConfig(PrintStream os) throws ConfigurationException { + + XMLConfiguration outputConf = (XMLConfiguration) expConf.clone(); + YAMLConfiguration outputYaml = new YAMLConfiguration(outputConf); + FileHandler handler = new FileHandler(outputYaml); + handler.save(os); + } + public void writeSummary(PrintStream os) { - Map summaryMap = new TreeMap<>(); - TimeZone.setDefault(TimeZone.getTimeZone("UTC")); - Date now = new Date(); - summaryMap.put("Current Timestamp (milliseconds)", now.getTime()); - summaryMap.put("DBMS Type", dbType); - summaryMap.put("DBMS Version", collector.collectVersion()); - summaryMap.put("Benchmark Type", benchType); - summaryMap.put("Latency Distribution", results.getDistributionStatistics().toMap()); - summaryMap.put("Throughput (requests/second)", results.requestsPerSecondThroughput()); - summaryMap.put("Goodput (requests/second)", results.requestsPerSecondGoodput()); + Map summaryMap = buildSummaryMap(dbType, collector, benchType, results); for (String field : BENCHMARK_KEY_FIELD) { summaryMap.put(field, expConf.getString(field)); } @@ -227,5 +230,111 @@ public void writeRaw(List activeTXTypes, PrintStream out) { } } + public Map writeDetailedSummary(PrintStream os, String customTags, Boolean skipReport, String workloadName) { + Map summaryMap = buildSummaryMap(dbType, collector, benchType, results); + summaryMap.put("Transaction Distribution", transactionsMap(results)); + summaryMap.put("Help", help()); + for (String field : BENCHMARK_KEY_FIELD) { + summaryMap.put(field, expConf.getString(field)); + } + Map detailedSummaryMap = new TreeMap<>(); + Map metadata = new TreeMap<>(); + metadata.put("yaml_version", parseYamlVersion(expConf.getString("yaml_version", null))); + metadata.put("yaml_change_description", expConf.getString("yaml_change_description", "")); + if (workloadName != null && !workloadName.isEmpty()) { + List> executeRules = + expConf.configurationsAt("microbenchmark/properties/executeRules"); + for (HierarchicalConfiguration rule : executeRules) { + if (workloadName.equals(rule.getString("workload"))) { + metadata.put("workload_change_description", rule.getString("workload_change_description", "")); + metadata.put("workload_version", rule.getDouble("workload_version", 1.0)); + break; + } + } + } + metadata.put("customTags", formatCustomTags(customTags)); + metadata.put("skipReport",skipReport); + metadata.put("executionStartEpoch", results.getExecutionStartEpoch()); + metadata.put("executionEndEpoch", results.getExecutionEndEpoch()); + JSONObject additionalMetadata = results.getFeaturebenchAdditionalResults().getMetaDataJson(); + for (String key : additionalMetadata.keySet()) { + metadata.put(key, additionalMetadata.get(key)); + } + detailedSummaryMap.put("metadata", metadata); + detailedSummaryMap.put("Summary", summaryMap); + detailedSummaryMap.put("queries", results.getFeaturebenchAdditionalResults().getJsonResultsList()); + os.println(JSONUtil.format(JSONUtil.toJSONString(detailedSummaryMap))); + return detailedSummaryMap; + } + private static Object parseYamlVersion(String version) { + if (version == null) return 1.0; + String trimmed = version.strip(); + if (!trimmed.isEmpty() && (trimmed.charAt(0) == 'v' || trimmed.charAt(0) == 'V')) + trimmed = trimmed.substring(1).strip(); + try { + return Double.valueOf(trimmed); + } catch (NumberFormatException e) { + return trimmed; + } + } + + public static Map transactionsMap(Results results) { + Map transactionsMap = new TreeMap<>(); + transactionsMap.put("Completed Transactions", results.getSuccess().getSampleCount()); + transactionsMap.put("Aborted Transactions", results.getAbort().getSampleCount()); + transactionsMap.put("Rejected Transactions (Server Retry)", results.getRetry().getSampleCount()); + transactionsMap.put("Rejected Transactions (Retry Different)", results.getRetryDifferent().getSampleCount()); + transactionsMap.put("Unexpected SQL Errors", results.getError().getSampleCount()); + transactionsMap.put("Unknown Status Transactions", results.getUnknown().getSampleCount()); + transactionsMap.put("Zero Rows Returned", results.getZeroRows().getSampleCount()); + transactionsMap.put("Total measured requests", results.getMeasuredRequests()); + return transactionsMap; + } + + public static Map help() { + Map help = new TreeMap<>(); + help.put("Various Latencies", "Latency of transactions during the measure phase. Includes the time taken for retries."); + help.put("Completed Transactions", "Success transactions both in warmup, measure and cool-down phases."); + help.put("Aborted Transactions", "Total aborted transactions in warmup, measure and cool-down phases"); + help.put("Rejected Transactions (Server Retry)", "Total retries in warmup, measure and cool-down phases. The retries are done with different bind variables as of now."); + help.put("Rejected Transactions (Retry Different)", "Not applicable for featurebench."); + help.put("Unexpected SQL Errors", "Total transactions with unknown SQL error in warmup, measure and cool-down phases"); + help.put("Unknown Status Transactions", "Total transactions with unknown status in warmup, measure and cool-down phases"); + help.put("Zero Rows Returned", "Total transactions in warmup, measure and cool-down phases which returned/updated 0 rows."); + help.put("Total measured requests", "Total transactions during the measure phase (multiple retries are counted as 1)"); + help.put("Throughput (requests/second)", "(Total measured requests/Measure(Execute) phase time)"); + help.put("Goodput (requests/second)", "(Completed Transactions / Measure(Execute) phase time). Don't refer. Derived from benchbase."); + + return help; + } + + private static Map buildSummaryMap(DatabaseType dbType, DBParameterCollector collector, String benchType, Results results) { + Map summaryMap = new TreeMap<>(); + TimeZone.setDefault(TimeZone.getTimeZone("UTC")); + Date now = new Date(); + summaryMap.put("Current Timestamp (milliseconds)", now.getTime()); + summaryMap.put("DBMS Type", dbType); + summaryMap.put("DBMS Version", collector.collectVersion()); + summaryMap.put("Benchmark Type", benchType); + summaryMap.put("Latency Distribution", results.getDistributionStatistics().toMap()); + summaryMap.put("Throughput (requests/second)", results.requestsPerSecondThroughput()); + summaryMap.put("Goodput (requests/second)", results.requestsPerSecondGoodput()); + return summaryMap; + } + + public static Map formatCustomTags(String customTags) { + Map resultTags = new HashMap<>(); + + if (customTags == null) return resultTags; + for(String tag: customTags.split(",")) { + String[] keyValue = tag.split("="); + if (keyValue.length == 2) + resultTags.put(keyValue[0], keyValue[1]); + else + resultTags.put(keyValue[0], ""); + } + + return resultTags; + } } diff --git a/src/main/java/com/oltpbenchmark/util/SQLUtil.java b/src/main/java/com/oltpbenchmark/util/SQLUtil.java index d7f6fee5e..6501c66ee 100644 --- a/src/main/java/com/oltpbenchmark/util/SQLUtil.java +++ b/src/main/java/com/oltpbenchmark/util/SQLUtil.java @@ -21,7 +21,6 @@ import com.oltpbenchmark.catalog.*; import com.oltpbenchmark.types.DatabaseType; import com.oltpbenchmark.types.SortDirectionType; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -464,11 +463,11 @@ private static AbstractCatalog getCatalogDirect(DatabaseType databaseType, Conne } - try (ResultSet table_rs = md.getTables(catalog, schema, null, new String[]{"TABLE"})) { + try (ResultSet table_rs = md.getTables(catalog, schema, null, new String[]{"TABLE","PARTITIONED TABLE"})) { while (table_rs.next()) { String table_type = table_rs.getString("TABLE_TYPE"); - if (!table_type.equalsIgnoreCase("TABLE")) { + if (!table_type.equalsIgnoreCase("TABLE") && !table_type.equalsIgnoreCase("PARTITIONED TABLE")) { continue; } diff --git a/src/main/resources/benchmarks/auctionmark/ddl-postgres.sql b/src/main/resources/benchmarks/auctionmark/ddl-postgres.sql index e68a3b565..11da5467d 100644 --- a/src/main/resources/benchmarks/auctionmark/ddl-postgres.sql +++ b/src/main/resources/benchmarks/auctionmark/ddl-postgres.sql @@ -319,6 +319,7 @@ CREATE TABLE item_bid ( FOREIGN KEY (ib_buyer_id) REFERENCES useracct (u_id) ON DELETE CASCADE, PRIMARY KEY (ib_id, ib_i_id, ib_u_id) ); +create index range_idx on item_bid(ib_i_id, ib_u_id) include (ib_id); -- ================================================================ -- ITEM_MAX_BID diff --git a/src/main/resources/benchmarks/auctionmark/ddl-yugabyte.sql b/src/main/resources/benchmarks/auctionmark/ddl-yugabyte.sql new file mode 100644 index 000000000..e9ae5c390 --- /dev/null +++ b/src/main/resources/benchmarks/auctionmark/ddl-yugabyte.sql @@ -0,0 +1,391 @@ + +DROP TABLE IF EXISTS item_attribute CASCADE; +DROP TABLE IF EXISTS item_image CASCADE; +DROP TABLE IF EXISTS item_comment CASCADE; +DROP TABLE IF EXISTS item_max_bid CASCADE; +DROP TABLE IF EXISTS useracct_item CASCADE; +DROP TABLE IF EXISTS item_purchase CASCADE; +DROP TABLE IF EXISTS item_bid CASCADE; +DROP TABLE IF EXISTS global_attribute_value CASCADE; +DROP TABLE IF EXISTS global_attribute_group CASCADE; +DROP TABLE IF EXISTS config_profile CASCADE; +DROP TABLE IF EXISTS useracct_feedback CASCADE; +DROP TABLE IF EXISTS useracct_watch CASCADE; +DROP TABLE IF EXISTS item CASCADE; +DROP TABLE IF EXISTS useracct_attributes CASCADE; +DROP TABLE IF EXISTS useracct CASCADE; +DROP TABLE IF EXISTS region CASCADE; +DROP TABLE IF EXISTS category CASCADE; + +-- ================================================================ +-- CONFIG_PROFILE +-- ================================================================ + +CREATE TABLE config_profile ( + cfp_scale_factor float NOT NULL, + cfp_loader_start timestamp DEFAULT CURRENT_TIMESTAMP, + cfp_loader_stop timestamp DEFAULT CURRENT_TIMESTAMP, + cfp_user_item_histogram text NOT NULL +); + +-- ================================================================ +-- REGION +-- Represents regions of users +-- r_id Region's ID +-- r_name Region's name +-- ================================================================ + +CREATE TABLE region ( + r_id bigint NOT NULL, + r_name varchar(32), + PRIMARY KEY (r_id) +); + +-- ================================================================ +-- USERACCT +-- Represents user accounts +-- u_id User ID +-- u_firstname User's first name +-- u_lastname User's last name +-- u_password User's password +-- u_email User's email +-- u_rating User's rating as a seller +-- u_balance User's balance +-- u_created User's create date +-- u_r_id User's region ID +-- ================================================================ + +CREATE TABLE useracct ( + u_id varchar(128) NOT NULL, + u_rating bigint NOT NULL, + u_balance float NOT NULL, + u_comments integer DEFAULT 0, + u_r_id bigint NOT NULL, + u_created timestamp DEFAULT CURRENT_TIMESTAMP, + u_updated timestamp DEFAULT CURRENT_TIMESTAMP, + u_sattr0 varchar(64), + u_sattr1 varchar(64), + u_sattr2 varchar(64), + u_sattr3 varchar(64), + u_sattr4 varchar(64), + u_sattr5 varchar(64), + u_sattr6 varchar(64), + u_sattr7 varchar(64), + u_iattr0 bigint DEFAULT NULL, + u_iattr1 bigint DEFAULT NULL, + u_iattr2 bigint DEFAULT NULL, + u_iattr3 bigint DEFAULT NULL, + u_iattr4 bigint DEFAULT NULL, + u_iattr5 bigint DEFAULT NULL, + u_iattr6 bigint DEFAULT NULL, + u_iattr7 bigint DEFAULT NULL, + FOREIGN KEY (u_r_id) REFERENCES region (r_id) ON DELETE CASCADE, + PRIMARY KEY (u_id) +); +CREATE INDEX idx_useracct_region ON useracct (u_id, u_r_id); + +-- ================================================================ +-- USERACCT_ATTRIBUTES +-- Represents user's attributes +-- ================================================================ + +CREATE TABLE useracct_attributes ( + ua_id bigint NOT NULL, + ua_u_id varchar(128) NOT NULL, + ua_name varchar(32) NOT NULL, + ua_value varchar(32) NOT NULL, + u_created timestamp, + FOREIGN KEY (ua_u_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + PRIMARY KEY (ua_id, ua_u_id) +); + +-- ================================================================ +-- CATEGORY +-- Represents merchandises' categories. Category can be hierarchical aligned using c_parent_id. +-- c_id Category's ID +-- c_name Category's name +-- c_parent_id Parent category's ID +-- ================================================================ + +CREATE TABLE category ( + c_id bigint NOT NULL, + c_name varchar(50), + c_parent_id bigint, + PRIMARY KEY (c_id), + FOREIGN KEY (c_parent_id) REFERENCES category (c_id) ON DELETE CASCADE +); +CREATE INDEX idx_category_parent ON category (c_parent_id); + +-- ================================================================ +-- GLOBAL_ATTRIBUTE_GROUP +-- Represents merchandises' global attribute groups (for example, brand, material, feature etc.). +-- gag_id Global attribute group's ID +-- gag_c_id Associated Category's ID +-- gag_name Global attribute group's name +-- ================================================================ + +CREATE TABLE global_attribute_group ( + gag_id varchar(128) NOT NULL, + gag_c_id bigint NOT NULL, + gag_name varchar(100) NOT NULL, + FOREIGN KEY (gag_c_id) REFERENCES category (c_id) ON DELETE CASCADE, + PRIMARY KEY (gag_id) +); + +-- ================================================================ +-- GLOBAL_ATTRIBUTE_VALUE +-- Represents merchandises' global attributes within each attribute +-- groups (for example, Rolex, Casio, Seiko within brand) +-- gav_id Global attribute value's ID +-- gav_gag_id Associated Global attribute group's ID +-- gav_name Global attribute value's name +-- ================================================================ + +CREATE TABLE global_attribute_value ( + gav_id varchar(128) NOT NULL, + gav_gag_id varchar(128) NOT NULL, + gav_name varchar(100) NOT NULL, + FOREIGN KEY (gav_gag_id) REFERENCES global_attribute_group (gag_id) ON DELETE CASCADE, + PRIMARY KEY (gav_id, gav_gag_id) +); + +-- ================================================================ +-- ITEM +-- Represents merchandises +-- i_id Item's ID +-- i_u_id Seller's ID +-- i_c_id Category's ID +-- i_name Item's name +-- i_description Item's description +-- i_initial_price Item's initial price +-- i_reserve_price Item's reserve price +-- i_buy_now Item's buy now price +-- i_nb_of_bids Item's number of bids +-- i_max_bid Item's max bid price +-- i_user_attributes Text field for attributes defined just for this item +-- i_start_date Item's bid start date +-- i_end_date Item's bid end date +-- i_status Items' status (0 = open, 1 = wait for purchase, 2 = close) +-- ================================================================ + +CREATE TABLE item ( + i_id varchar(128) NOT NULL, + i_u_id varchar(128) NOT NULL, + i_c_id bigint NOT NULL, + i_name varchar(100), + i_description varchar(1024), + i_user_attributes varchar(255) DEFAULT NULL, + i_initial_price float NOT NULL, + i_current_price float NOT NULL, + i_num_bids bigint, + i_num_images bigint, + i_num_global_attrs bigint, + i_num_comments bigint, + i_start_date timestamp DEFAULT '1970-01-01 00:00:01', + i_end_date timestamp DEFAULT '1970-01-01 00:00:01', + i_status int DEFAULT 0, + i_created timestamp DEFAULT CURRENT_TIMESTAMP, + i_updated timestamp DEFAULT CURRENT_TIMESTAMP, + i_iattr0 bigint DEFAULT NULL, + i_iattr1 bigint DEFAULT NULL, + i_iattr2 bigint DEFAULT NULL, + i_iattr3 bigint DEFAULT NULL, + i_iattr4 bigint DEFAULT NULL, + i_iattr5 bigint DEFAULT NULL, + i_iattr6 bigint DEFAULT NULL, + i_iattr7 bigint DEFAULT NULL, + FOREIGN KEY (i_u_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + FOREIGN KEY (i_c_id) REFERENCES category (c_id) ON DELETE CASCADE, + PRIMARY KEY (i_id, i_u_id) +); +CREATE INDEX idx_item_seller ON item (i_u_id); + +-- ================================================================ +-- ITEM_ATTRIBUTE +-- Represents mappings between attribute values and items +-- ia_id Item attribute's ID +-- ia_i_id Item's ID +-- ia_gav_id Global attribute value's ID +-- ================================================================ + +CREATE TABLE item_attribute ( + ia_id varchar(128) NOT NULL, + ia_i_id varchar(128) NOT NULL, + ia_u_id varchar(128) NOT NULL, + ia_gav_id varchar(128) NOT NULL, + ia_gag_id varchar(128) NOT NULL, + ia_sattr0 varchar(64) DEFAULT NULL, + FOREIGN KEY (ia_i_id, ia_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + FOREIGN KEY (ia_gav_id, ia_gag_id) REFERENCES global_attribute_value (gav_id, gav_gag_id), + PRIMARY KEY (ia_id, ia_i_id, ia_u_id) +); + +-- ================================================================ +-- ITEM_IMAGE +-- Represents images of items +-- ii_id Image's ID +-- ii_i_id Item's ID +-- ii_path Image's path +-- ================================================================ + +CREATE TABLE item_image ( + ii_id varchar(128) NOT NULL, + ii_i_id varchar(128) NOT NULL, + ii_u_id varchar(128) NOT NULL, + ii_sattr0 varchar(128) NOT NULL, + FOREIGN KEY (ii_i_id, ii_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + PRIMARY KEY (ii_id, ii_i_id, ii_u_id) +); + +-- ================================================================ +-- ITEM_COMMENT +-- Represents comments provided by buyers +-- ic_id Comment's ID +-- ic_i_id Item's ID +-- ic_u_id Buyer's ID +-- ic_date Comment's create date +-- ic_question Comment by buyer +-- ic_response Response from seller +-- ================================================================ + +CREATE TABLE item_comment ( + ic_id bigint NOT NULL, + ic_i_id varchar(128) NOT NULL, + ic_u_id varchar(128) NOT NULL, + ic_buyer_id varchar(128) NOT NULL, + ic_question varchar(128) NOT NULL, + ic_response varchar(128) DEFAULT NULL, + ic_created timestamp DEFAULT CURRENT_TIMESTAMP, + ic_updated timestamp DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (ic_i_id, ic_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + FOREIGN KEY (ic_buyer_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + PRIMARY KEY (ic_id, ic_i_id, ic_u_id) +); +-- CREATE INDEX IDX_ITEM_COMMENT ON ITEM_COMMENT (ic_i_id, ic_u_id); + +-- ================================================================ +-- ITEM_BID +-- Represents merchandises' bids +-- ib_id Bid's ID +-- ib_i_id Item's ID +-- ib_u_id Buyer's ID +-- ib_type Type of transaction (bid or buy_now) +-- ib_bid Bid's price +-- ib_max_bid ??? +-- ib_date Bid's date +-- ================================================================ + +CREATE TABLE item_bid ( + ib_id bigint NOT NULL, + ib_i_id varchar(128) NOT NULL, + ib_u_id varchar(128) NOT NULL, + ib_buyer_id varchar(128) NOT NULL, + ib_bid float NOT NULL, + ib_max_bid float NOT NULL, + ib_created timestamp DEFAULT CURRENT_TIMESTAMP, + ib_updated timestamp DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (ib_i_id, ib_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + FOREIGN KEY (ib_buyer_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + PRIMARY KEY (ib_id, ib_i_id, ib_u_id) +); + +CREATE INDEX range_idx on item_bid(ib_i_id ASC, ib_u_id ASC) include (ib_id); + +-- ================================================================ +-- ITEM_MAX_BID +-- Cross-reference table to the current max bid for an auction +-- ================================================================ + +CREATE TABLE item_max_bid ( + imb_i_id varchar(128) NOT NULL, + imb_u_id varchar(128) NOT NULL, + imb_ib_id bigint NOT NULL, + imb_ib_i_id varchar(128) NOT NULL, + imb_ib_u_id varchar(128) NOT NULL, + imb_created timestamp DEFAULT CURRENT_TIMESTAMP, + imb_updated timestamp DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (imb_i_id, imb_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + FOREIGN KEY (imb_ib_id, imb_ib_i_id, imb_ib_u_id) REFERENCES item_bid (ib_id, ib_i_id, ib_u_id) ON DELETE CASCADE, + PRIMARY KEY (imb_i_id, imb_u_id) +); + +-- ================================================================ +-- ITEM_PURCHASE +-- Represents purchase transaction (buy_now bid or win bid) +-- ip_id Purchase's ID +-- ip_ib_id Bid's ID +-- ip_date Purchase's date +-- ================================================================ + +CREATE TABLE item_purchase ( + ip_id bigint NOT NULL, + ip_ib_id bigint NOT NULL, + ip_ib_i_id varchar(128) NOT NULL, + ip_ib_u_id varchar(128) NOT NULL, + ip_date timestamp DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (ip_ib_id, ip_ib_i_id, ip_ib_u_id) REFERENCES item_bid (ib_id, ib_i_id, ib_u_id) ON DELETE CASCADE, + PRIMARY KEY (ip_id, ip_ib_id, ip_ib_i_id, ip_ib_u_id) +); + +-- ================================================================ +-- USERACCT_FEEDBACK +-- Represents feedbacks between buyers and sellers for a transaction +-- uf_id Feedback's ID +-- uf_u_id The user receiving the feedback +-- uf_i_id Item's ID +-- uf_i_u_id Item's seller id +-- uf_from_id The other user writing the feedback +-- uf_date Feedback's create date +-- uf_comment Feedback by other user +-- ================================================================ + +CREATE TABLE useracct_feedback ( + uf_u_id varchar(128) NOT NULL, + uf_i_id varchar(128) NOT NULL, + uf_i_u_id varchar(128) NOT NULL, + uf_from_id varchar(128) NOT NULL, + uf_rating smallint NOT NULL, + uf_date timestamp DEFAULT CURRENT_TIMESTAMP, + uf_sattr0 varchar(80) NOT NULL, + FOREIGN KEY (uf_i_id, uf_i_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + FOREIGN KEY (uf_u_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + FOREIGN KEY (uf_from_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + PRIMARY KEY (uf_u_id, uf_i_id, uf_i_u_id, uf_from_id), + CHECK (uf_u_id <> uf_from_id) +); + +-- ================================================================ +-- USERACCT_ITEM +-- The items that a user has recently purchased +-- ================================================================ + +CREATE TABLE useracct_item ( + ui_u_id varchar(128) NOT NULL, + ui_i_id varchar(128) NOT NULL, + ui_i_u_id varchar(128) NOT NULL, + ui_ip_id bigint, + ui_ip_ib_id bigint, + ui_ip_ib_i_id varchar(128), + ui_ip_ib_u_id varchar(128), + ui_created timestamp DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (ui_u_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + FOREIGN KEY (ui_i_id, ui_i_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + FOREIGN KEY (ui_ip_id, ui_ip_ib_id, ui_ip_ib_i_id, ui_ip_ib_u_id) REFERENCES item_purchase (ip_id, ip_ib_id, ip_ib_i_id, ip_ib_u_id) ON DELETE CASCADE, + PRIMARY KEY (ui_u_id, ui_i_id, ui_i_u_id) +); +-- CREATE INDEX IDX_USERACCT_ITEM_ID ON USERACCT_ITEM (ui_i_id); + +-- ================================================================ +-- USERACCT_WATCH +-- The items that a user is watching +-- ================================================================ + +CREATE TABLE useracct_watch ( + uw_u_id varchar(128) NOT NULL, + uw_i_id varchar(128) NOT NULL, + uw_i_u_id varchar(128) NOT NULL, + uw_created timestamp DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (uw_i_id, uw_i_u_id) REFERENCES item (i_id, i_u_id) ON DELETE CASCADE, + FOREIGN KEY (uw_u_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + PRIMARY KEY (uw_u_id, uw_i_id, uw_i_u_id) +); diff --git a/src/main/resources/benchmarks/chbenchmark/ddl-yugabyte.sql b/src/main/resources/benchmarks/chbenchmark/ddl-yugabyte.sql new file mode 100644 index 000000000..b26ded3bc --- /dev/null +++ b/src/main/resources/benchmarks/chbenchmark/ddl-yugabyte.sql @@ -0,0 +1,31 @@ +DROP TABLE IF EXISTS supplier CASCADE; +DROP TABLE IF EXISTS nation CASCADE; +DROP TABLE IF EXISTS region CASCADE; + +CREATE TABLE region ( + r_regionkey int NOT NULL, + r_name char(55) NOT NULL, + r_comment char(152) NOT NULL, + PRIMARY KEY (r_regionkey) +); + +CREATE TABLE nation ( + n_nationkey int NOT NULL, + n_name char(25) NOT NULL, + n_regionkey int NOT NULL, + n_comment char(152) NOT NULL, + FOREIGN KEY (n_regionkey) REFERENCES region (r_regionkey) ON DELETE CASCADE, + PRIMARY KEY (n_nationkey) +); + +CREATE TABLE supplier ( + su_suppkey int NOT NULL, + su_name char(25) NOT NULL, + su_address varchar(40) NOT NULL, + su_nationkey int NOT NULL, + su_phone char(15) NOT NULL, + su_acctbal numeric(12, 2) NOT NULL, + su_comment char(101) NOT NULL, + FOREIGN KEY (su_nationkey) REFERENCES nation (n_nationkey) ON DELETE CASCADE, + PRIMARY KEY (su_suppkey) +); diff --git a/src/main/resources/benchmarks/epinions/ddl-yugabyte.sql b/src/main/resources/benchmarks/epinions/ddl-yugabyte.sql new file mode 100644 index 000000000..0fa34a5e9 --- /dev/null +++ b/src/main/resources/benchmarks/epinions/ddl-yugabyte.sql @@ -0,0 +1,59 @@ +DROP TABLE IF EXISTS review CASCADE; +DROP TABLE IF EXISTS review_rating CASCADE; +DROP TABLE IF EXISTS trust CASCADE; +DROP TABLE IF EXISTS useracct CASCADE; +DROP TABLE IF EXISTS item CASCADE; + +CREATE TABLE useracct ( + u_id int NOT NULL, + name varchar(128) NOT NULL, + email varchar(128) NOT NULL, + creation_date timestamp DEFAULT NULL, + PRIMARY KEY (u_id) +); + +CREATE TABLE item ( + i_id int NOT NULL, + title varchar(128) NOT NULL, + description varchar(512) DEFAULT NULL, + creation_date timestamp DEFAULT NULL, + PRIMARY KEY (i_id) +); + +CREATE TABLE review ( + a_id int NOT NULL, + u_id int NOT NULL, + i_id int NOT NULL, + rating int DEFAULT NULL, + rank int DEFAULT NULL, + comment varchar(256) DEFAULT NULL, + creation_date timestamp DEFAULT NULL, + FOREIGN KEY (u_id) REFERENCES useracct (u_id) ON DELETE CASCADE, + FOREIGN KEY (i_id) REFERENCES item (i_id) ON DELETE CASCADE +); +CREATE INDEX idx_rating_uid ON review (u_id); +CREATE INDEX idx_rating_aid ON review (a_id); +CREATE INDEX idx_rating_iid ON review (i_id); + +CREATE TABLE review_rating ( + u_id int NOT NULL, + a_id int NOT NULL, + rating int NOT NULL, + status int NOT NULL, + creation_date timestamp DEFAULT NULL, + last_mod_date timestamp DEFAULT NULL, + type int DEFAULT NULL, + vertical_id int DEFAULT NULL, + FOREIGN KEY (u_id) REFERENCES useracct (u_id) ON DELETE CASCADE +); +CREATE INDEX idx_review_rating_uid ON review_rating (u_id); +CREATE INDEX idx_review_rating_aid ON review_rating (a_id); + +CREATE TABLE trust ( + source_u_id int NOT NULL, + target_u_id int NOT NULL, + trust int NOT NULL, + creation_date timestamp DEFAULT NULL +); +CREATE INDEX idx_trust_sid ON trust (source_u_id); +CREATE INDEX idx_trust_tid ON trust (target_u_id); diff --git a/src/main/resources/benchmarks/featurebench/ddl-cockroachdb.sql b/src/main/resources/benchmarks/featurebench/ddl-cockroachdb.sql new file mode 100644 index 000000000..09991b6f8 --- /dev/null +++ b/src/main/resources/benchmarks/featurebench/ddl-cockroachdb.sql @@ -0,0 +1,4 @@ +DROP TABLE IF EXISTS fake; +CREATE TABLE fake ( + id int PRIMARY KEY +); diff --git a/src/main/resources/benchmarks/featurebench/ddl-generic.sql b/src/main/resources/benchmarks/featurebench/ddl-generic.sql new file mode 100644 index 000000000..d5d7a476f --- /dev/null +++ b/src/main/resources/benchmarks/featurebench/ddl-generic.sql @@ -0,0 +1,4 @@ +DROP TABLE IF EXISTS FAKE; +CREATE TABLE FAKE ( + ID INT PRIMARY KEY +); \ No newline at end of file diff --git a/src/main/resources/benchmarks/featurebench/ddl-mysql.sql b/src/main/resources/benchmarks/featurebench/ddl-mysql.sql new file mode 100644 index 000000000..3a90845fb --- /dev/null +++ b/src/main/resources/benchmarks/featurebench/ddl-mysql.sql @@ -0,0 +1,10 @@ +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; + +DROP TABLE IF EXISTS fake; +CREATE TABLE fake ( + id int PRIMARY KEY +); + +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; \ No newline at end of file diff --git a/src/main/resources/benchmarks/featurebench/ddl-postgres.sql b/src/main/resources/benchmarks/featurebench/ddl-postgres.sql new file mode 100644 index 000000000..09991b6f8 --- /dev/null +++ b/src/main/resources/benchmarks/featurebench/ddl-postgres.sql @@ -0,0 +1,4 @@ +DROP TABLE IF EXISTS fake; +CREATE TABLE fake ( + id int PRIMARY KEY +); diff --git a/src/main/resources/benchmarks/featurebench/ddl-sqlserver.sql b/src/main/resources/benchmarks/featurebench/ddl-sqlserver.sql new file mode 100644 index 000000000..100d7ca67 --- /dev/null +++ b/src/main/resources/benchmarks/featurebench/ddl-sqlserver.sql @@ -0,0 +1,6 @@ +-- DROP EXISTING TABLES +IF OBJECT_ID('FAKE') IS NOT NULL DROP TABLE FAKE; + +CREATE TABLE FAKE ( + ID INT PRIMARY KEY +); diff --git a/src/main/resources/benchmarks/featurebench/dialect-hsqldb.xml b/src/main/resources/benchmarks/featurebench/dialect-hsqldb.xml new file mode 100644 index 000000000..bb82d0ca9 --- /dev/null +++ b/src/main/resources/benchmarks/featurebench/dialect-hsqldb.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/main/resources/benchmarks/hyadapt/ddl-yugabyte.sql b/src/main/resources/benchmarks/hyadapt/ddl-yugabyte.sql new file mode 100644 index 000000000..27a07ca10 --- /dev/null +++ b/src/main/resources/benchmarks/hyadapt/ddl-yugabyte.sql @@ -0,0 +1,254 @@ +DROP TABLE IF EXISTS htable; +CREATE TABLE htable ( + h_key int PRIMARY KEY, + field1 int, + field2 int, + field3 int, + field4 int, + field5 int, + field6 int, + field7 int, + field8 int, + field9 int, + field10 int, + field11 int, + field12 int, + field13 int, + field14 int, + field15 int, + field16 int, + field17 int, + field18 int, + field19 int, + field20 int, + field21 int, + field22 int, + field23 int, + field24 int, + field25 int, + field26 int, + field27 int, + field28 int, + field29 int, + field30 int, + field31 int, + field32 int, + field33 int, + field34 int, + field35 int, + field36 int, + field37 int, + field38 int, + field39 int, + field40 int, + field41 int, + field42 int, + field43 int, + field44 int, + field45 int, + field46 int, + field47 int, + field48 int, + field49 int, + field50 int, + field51 int, + field52 int, + field53 int, + field54 int, + field55 int, + field56 int, + field57 int, + field58 int, + field59 int, + field60 int, + field61 int, + field62 int, + field63 int, + field64 int, + field65 int, + field66 int, + field67 int, + field68 int, + field69 int, + field70 int, + field71 int, + field72 int, + field73 int, + field74 int, + field75 int, + field76 int, + field77 int, + field78 int, + field79 int, + field80 int, + field81 int, + field82 int, + field83 int, + field84 int, + field85 int, + field86 int, + field87 int, + field88 int, + field89 int, + field90 int, + field91 int, + field92 int, + field93 int, + field94 int, + field95 int, + field96 int, + field97 int, + field98 int, + field99 int, + field100 int, + field101 int, + field102 int, + field103 int, + field104 int, + field105 int, + field106 int, + field107 int, + field108 int, + field109 int, + field110 int, + field111 int, + field112 int, + field113 int, + field114 int, + field115 int, + field116 int, + field117 int, + field118 int, + field119 int, + field120 int, + field121 int, + field122 int, + field123 int, + field124 int, + field125 int, + field126 int, + field127 int, + field128 int, + field129 int, + field130 int, + field131 int, + field132 int, + field133 int, + field134 int, + field135 int, + field136 int, + field137 int, + field138 int, + field139 int, + field140 int, + field141 int, + field142 int, + field143 int, + field144 int, + field145 int, + field146 int, + field147 int, + field148 int, + field149 int, + field150 int, + field151 int, + field152 int, + field153 int, + field154 int, + field155 int, + field156 int, + field157 int, + field158 int, + field159 int, + field160 int, + field161 int, + field162 int, + field163 int, + field164 int, + field165 int, + field166 int, + field167 int, + field168 int, + field169 int, + field170 int, + field171 int, + field172 int, + field173 int, + field174 int, + field175 int, + field176 int, + field177 int, + field178 int, + field179 int, + field180 int, + field181 int, + field182 int, + field183 int, + field184 int, + field185 int, + field186 int, + field187 int, + field188 int, + field189 int, + field190 int, + field191 int, + field192 int, + field193 int, + field194 int, + field195 int, + field196 int, + field197 int, + field198 int, + field199 int, + field200 int, + field201 int, + field202 int, + field203 int, + field204 int, + field205 int, + field206 int, + field207 int, + field208 int, + field209 int, + field210 int, + field211 int, + field212 int, + field213 int, + field214 int, + field215 int, + field216 int, + field217 int, + field218 int, + field219 int, + field220 int, + field221 int, + field222 int, + field223 int, + field224 int, + field225 int, + field226 int, + field227 int, + field228 int, + field229 int, + field230 int, + field231 int, + field232 int, + field233 int, + field234 int, + field235 int, + field236 int, + field237 int, + field238 int, + field239 int, + field240 int, + field241 int, + field242 int, + field243 int, + field244 int, + field245 int, + field246 int, + field247 int, + field248 int, + field249 int, + field250 int +); diff --git a/src/main/resources/benchmarks/noop/ddl-yugabyte.sql b/src/main/resources/benchmarks/noop/ddl-yugabyte.sql new file mode 100644 index 000000000..09991b6f8 --- /dev/null +++ b/src/main/resources/benchmarks/noop/ddl-yugabyte.sql @@ -0,0 +1,4 @@ +DROP TABLE IF EXISTS fake; +CREATE TABLE fake ( + id int PRIMARY KEY +); diff --git a/src/main/resources/benchmarks/perf-dataloader/array-mapping.properties b/src/main/resources/benchmarks/perf-dataloader/array-mapping.properties new file mode 100644 index 000000000..faa4554f1 --- /dev/null +++ b/src/main/resources/benchmarks/perf-dataloader/array-mapping.properties @@ -0,0 +1,32 @@ +# arraySize, minLength,maxLength +int2=RandomIntegerArrayGen:3:1,1,32767 +int4=RandomIntegerArrayGen:3:1,1,2147483647 +int8=RandomLongArrayGen:3:1,1,9223372036854775807 +smallint=RandomIntegerArrayGen:3:1,1,32767 +integer=RandomIntegerArrayGen:3:1,1,2147483647 +bigint=RandomLongArrayGen:3:1,1,9223372036854775807 + +#int2=RandomIntegerArrayGen:3:2,-32768,32767 +#int4=RandomIntegerArrayGen:3:2,-2147483648,2147483647 +#int8=RandomLongArrayGen:3:2,-9223372036854775808,9223372036854775807 +#smallint=RandomIntegerArrayGen:3:2,-32768,32767 +#integer=RandomIntegerArrayGen:3:2,-2147483648,2147483647 +#bigint=RandomLongArrayGen:3:2,-9223372036854775808,9223372036854775807 + +#decimal +#numeric +#real +serial=RandomIntegerArrayGen:3:2,1,2147483647 +bigserial=RandomLongArrayGen:3:2,1,9223372036854775807 +#money +#char +#varchar +#date +#time +#timestamp +#timestamptz +#interval +#boolean +#json +#jsonb +text=RandomTextArrayGen:3:1,20,20 diff --git a/src/main/resources/benchmarks/perf-dataloader/datatype-mapping.properties b/src/main/resources/benchmarks/perf-dataloader/datatype-mapping.properties new file mode 100644 index 000000000..f198ece63 --- /dev/null +++ b/src/main/resources/benchmarks/perf-dataloader/datatype-mapping.properties @@ -0,0 +1,56 @@ +#db_datatype=util_function_in_featurebench:num_of_params:param1_type,param2_type,... + +# minimum,maximum +integer=RandomInt:2:1,rows +numeric=RandomNumber:2:1,rows +bigint=RandomNumber:2:1,rows +# +boolean=RandomBoolean:0: + +# fields,valueLength,nestedness +jsonb=RandomJson:3:1,1000,1000 + +# fields,valueLength,nestedness +json=RandomJson:3:1,1000,1000 + +# yearlowerBound,yearupperBound +date=RandomDate:2:1000,2024 + +# minimumLength, maxLength +text=RandomAString:2:1,1000 + +# minimum,maximum,length +#text=HashedRandomString:3:1,1000,1000 + +# +uuid=RandomUUID:0: + + + + +timestampwithtimezone=RandomTimestampWithTimeZone:1:rows +timestampwithouttimezone=RandomTimestampWithoutTimeZone:1:rows +smallint=RandomInt:2:1,100 +tsvector=RandomAString:2:1,1000 +character=RandomAString:2:1,max +charactervarying=RandomAString:2:1,max + +bytea=RandomBytea:2:1,100 +#character(20) +#mpaa_rating +#TEXT= +#INT= +#DECIMAL +#TIME +#TIMESTAMP +#DATE +#TIMESTAMPTZ +#JSONB +#TEXT[] +#INET +#BYTEA +#UUID[] +#CIDR +#FLOAT +#SERIAL + diff --git a/src/main/resources/benchmarks/perf-dataloader/fk-mapping.properties b/src/main/resources/benchmarks/perf-dataloader/fk-mapping.properties new file mode 100644 index 000000000..6a84802e9 --- /dev/null +++ b/src/main/resources/benchmarks/perf-dataloader/fk-mapping.properties @@ -0,0 +1,12 @@ +integer=OneNumberFromArray:int +bigint=OneNumberFromArray:int +smallint=OneNumberFromArray:int +numeric=OneNumberFromArray:int + +date=OneStringFromArray:string +text=OneStringFromArray:string +uuid=OneUUIDFromArray:string +string=OneStringFromArray:string +charactervarying=OneStringFromArray:string +json=OneStringFromArray:string +jsonb=OneStringFromArray:string diff --git a/src/main/resources/benchmarks/perf-dataloader/pk-mapping.properties b/src/main/resources/benchmarks/perf-dataloader/pk-mapping.properties new file mode 100644 index 000000000..8333c6c26 --- /dev/null +++ b/src/main/resources/benchmarks/perf-dataloader/pk-mapping.properties @@ -0,0 +1,32 @@ +# lowerRange,upperRange +integer=PrimaryIntGen:2:1,rows +# startNumber,endNumber,desiredLength +string=PrimaryStringGen:2:1,1000 +charactervarying=PrimaryStringGen:2:1,1000 +text=PrimaryStringGen:2:1,1000 + +# startNumber,length +string1=HashedPrimaryStringGen:2:1,5 + +# startNumber,desiredLength +string2=PrimaryStringGen:2:1,5 + +# totalUniqueDates +date=PrimaryDateGen:1:rows + +# lowerRange,upperRange,decimalPoint +numeric=PrimaryFloatGen:3:1,rows,3 + +# +uuid=RandomUUID:0: + +character=RandomAString:2:1,max + +timestampwithtimezone=RandomTimestampWithTimeZone:1:rows +timestampwithouttimezone=RandomTimestampWithoutTimeZone:1:rows +smallint=RandomInt:2:1,rows +bigint=RandomInt:2:1,rows +tsvector=RandomAString:2:1,rows + + + diff --git a/src/main/resources/benchmarks/resourcestresser/ddl-yugabyte.sql b/src/main/resources/benchmarks/resourcestresser/ddl-yugabyte.sql new file mode 100644 index 000000000..047074a47 --- /dev/null +++ b/src/main/resources/benchmarks/resourcestresser/ddl-yugabyte.sql @@ -0,0 +1,43 @@ +DROP TABLE IF EXISTS cputable CASCADE; +DROP TABLE IF EXISTS iotable CASCADE; +DROP TABLE IF EXISTS iotablesmallrow CASCADE; +DROP TABLE IF EXISTS locktable CASCADE; + +CREATE TABLE cputable ( + empid int NOT NULL, + passwd char(255) NOT NULL, + PRIMARY KEY (empid) +); + +CREATE TABLE iotable ( + empid int NOT NULL, + data1 char(255) NOT NULL, + data2 char(255) NOT NULL, + data3 char(255) NOT NULL, + data4 char(255) NOT NULL, + data5 char(255) NOT NULL, + data6 char(255) NOT NULL, + data7 char(255) NOT NULL, + data8 char(255) NOT NULL, + data9 char(255) NOT NULL, + data10 char(255) NOT NULL, + data11 char(255) NOT NULL, + data12 char(255) NOT NULL, + data13 char(255) NOT NULL, + data14 char(255) NOT NULL, + data15 char(255) NOT NULL, + data16 char(255) NOT NULL, + PRIMARY KEY (empid) +); + +CREATE TABLE iotablesmallrow ( + empid int NOT NULL, + flag1 int NOT NULL, + PRIMARY KEY (empid) +); + +CREATE TABLE locktable ( + empid int NOT NULL, + salary int NOT NULL, + PRIMARY KEY (empid) +); \ No newline at end of file diff --git a/src/main/resources/benchmarks/seats/ddl-yugabyte.sql b/src/main/resources/benchmarks/seats/ddl-yugabyte.sql new file mode 100644 index 000000000..9471c1de4 --- /dev/null +++ b/src/main/resources/benchmarks/seats/ddl-yugabyte.sql @@ -0,0 +1,284 @@ +-- Drop Tables +DROP TABLE IF EXISTS config_profile CASCADE; +DROP TABLE IF EXISTS config_histograms CASCADE; +DROP TABLE IF EXISTS reservation CASCADE; +DROP TABLE IF EXISTS frequent_flyer CASCADE; +DROP TABLE IF EXISTS customer CASCADE; +DROP TABLE IF EXISTS flight CASCADE; +DROP TABLE IF EXISTS airport_distance CASCADE; +DROP TABLE IF EXISTS airport CASCADE; +DROP TABLE IF EXISTS airline CASCADE; +DROP TABLE IF EXISTS country CASCADE; + +-- +-- CONFIG_PROFILE +-- +CREATE TABLE config_profile ( + cfp_scale_factor float NOT NULL, + cfp_aiport_max_customer varchar(10001) NOT NULL, + cfp_flight_start timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + cfp_flight_upcoming timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + cfp_flight_past_days int NOT NULL, + cfp_flight_future_days int NOT NULL, + cfp_flight_offset int, + cfp_reservation_offset int, + cfp_num_reservations bigint NOT NULL, + cfp_code_ids_xrefs varchar(16004) NOT NULL +); + +-- +-- CONFIG_HISTOGRAMS +-- +CREATE TABLE config_histograms ( + cfh_name varchar(128) NOT NULL, + cfh_data varchar(10005) NOT NULL, + cfh_is_airport int DEFAULT 0, + PRIMARY KEY (cfh_name) +); + +-- +-- COUNTRY +-- +CREATE TABLE country ( + co_id bigint NOT NULL, + co_name varchar(64) NOT NULL, + co_code_2 varchar(2) NOT NULL, + co_code_3 varchar(3) NOT NULL, + PRIMARY KEY (co_id) +); + +-- +-- AIRPORT +-- +CREATE TABLE airport ( + ap_id bigint NOT NULL, + ap_code varchar(3) NOT NULL, + ap_name varchar(128) NOT NULL, + ap_city varchar(64) NOT NULL, + ap_postal_code varchar(12), + ap_co_id bigint NOT NULL, + ap_longitude float, + ap_latitude float, + ap_gmt_offset float, + ap_wac bigint, + ap_iattr00 bigint, + ap_iattr01 bigint, + ap_iattr02 bigint, + ap_iattr03 bigint, + ap_iattr04 bigint, + ap_iattr05 bigint, + ap_iattr06 bigint, + ap_iattr07 bigint, + ap_iattr08 bigint, + ap_iattr09 bigint, + ap_iattr10 bigint, + ap_iattr11 bigint, + ap_iattr12 bigint, + ap_iattr13 bigint, + ap_iattr14 bigint, + ap_iattr15 bigint, + PRIMARY KEY (ap_id), + FOREIGN KEY (ap_co_id) REFERENCES country (co_id) +); + +-- +-- AIRPORT_DISTANCE +-- +CREATE TABLE airport_distance ( + d_ap_id0 bigint NOT NULL, + d_ap_id1 bigint NOT NULL, + d_distance float NOT NULL, + PRIMARY KEY (d_ap_id0, d_ap_id1), + FOREIGN KEY (d_ap_id0) REFERENCES airport (ap_id), + FOREIGN KEY (d_ap_id1) REFERENCES airport (ap_id) +); + +-- +-- AIRLINE +-- +CREATE TABLE airline ( + al_id bigint NOT NULL, + al_iata_code varchar(3), + al_icao_code varchar(3), + al_call_sign varchar(32), + al_name varchar(128) NOT NULL, + al_co_id bigint NOT NULL, + al_iattr00 bigint, + al_iattr01 bigint, + al_iattr02 bigint, + al_iattr03 bigint, + al_iattr04 bigint, + al_iattr05 bigint, + al_iattr06 bigint, + al_iattr07 bigint, + al_iattr08 bigint, + al_iattr09 bigint, + al_iattr10 bigint, + al_iattr11 bigint, + al_iattr12 bigint, + al_iattr13 bigint, + al_iattr14 bigint, + al_iattr15 bigint, + PRIMARY KEY (al_id), + FOREIGN KEY (al_co_id) REFERENCES country (co_id) +); + +-- +-- CUSTOMER +-- +CREATE TABLE customer ( + c_id varchar(128) NOT NULL, + c_id_str varchar(64) UNIQUE NOT NULL, + c_base_ap_id bigint, + c_balance float NOT NULL, + c_sattr00 varchar(32), + c_sattr01 varchar(8), + c_sattr02 varchar(8), + c_sattr03 varchar(8), + c_sattr04 varchar(8), + c_sattr05 varchar(8), + c_sattr06 varchar(8), + c_sattr07 varchar(8), + c_sattr08 varchar(8), + c_sattr09 varchar(8), + c_sattr10 varchar(8), + c_sattr11 varchar(8), + c_sattr12 varchar(8), + c_sattr13 varchar(8), + c_sattr14 varchar(8), + c_sattr15 varchar(8), + c_sattr16 varchar(8), + c_sattr17 varchar(8), + c_sattr18 varchar(8), + c_sattr19 varchar(8), + c_iattr00 bigint, + c_iattr01 bigint, + c_iattr02 bigint, + c_iattr03 bigint, + c_iattr04 bigint, + c_iattr05 bigint, + c_iattr06 bigint, + c_iattr07 bigint, + c_iattr08 bigint, + c_iattr09 bigint, + c_iattr10 bigint, + c_iattr11 bigint, + c_iattr12 bigint, + c_iattr13 bigint, + c_iattr14 bigint, + c_iattr15 bigint, + c_iattr16 bigint, + c_iattr17 bigint, + c_iattr18 bigint, + c_iattr19 bigint, + PRIMARY KEY (c_id), + FOREIGN KEY (c_base_ap_id) REFERENCES airport (ap_id) +); + +-- +-- FREQUENT_FLYER +-- +CREATE TABLE frequent_flyer ( + ff_c_id varchar(128) NOT NULL, + ff_al_id bigint NOT NULL, + ff_c_id_str varchar(64) NOT NULL, + ff_sattr00 varchar(32), + ff_sattr01 varchar(32), + ff_sattr02 varchar(32), + ff_sattr03 varchar(32), + ff_iattr00 bigint, + ff_iattr01 bigint, + ff_iattr02 bigint, + ff_iattr03 bigint, + ff_iattr04 bigint, + ff_iattr05 bigint, + ff_iattr06 bigint, + ff_iattr07 bigint, + ff_iattr08 bigint, + ff_iattr09 bigint, + ff_iattr10 bigint, + ff_iattr11 bigint, + ff_iattr12 bigint, + ff_iattr13 bigint, + ff_iattr14 bigint, + ff_iattr15 bigint, + PRIMARY KEY (ff_c_id, ff_al_id), + FOREIGN KEY (ff_c_id) REFERENCES customer (c_id), + FOREIGN KEY (ff_al_id) REFERENCES airline (al_id) +); +CREATE INDEX idx_ff_customer_id ON frequent_flyer (ff_c_id_str); + +-- +-- FLIGHT +-- +CREATE TABLE flight ( + f_id varchar(128) NOT NULL, + f_al_id bigint NOT NULL, + f_depart_ap_id bigint NOT NULL, + f_depart_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + f_arrive_ap_id bigint NOT NULL, + f_arrive_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + f_status bigint NOT NULL, + f_base_price float NOT NULL, + f_seats_total bigint NOT NULL, + f_seats_left bigint NOT NULL, + f_iattr00 bigint, + f_iattr01 bigint, + f_iattr02 bigint, + f_iattr03 bigint, + f_iattr04 bigint, + f_iattr05 bigint, + f_iattr06 bigint, + f_iattr07 bigint, + f_iattr08 bigint, + f_iattr09 bigint, + f_iattr10 bigint, + f_iattr11 bigint, + f_iattr12 bigint, + f_iattr13 bigint, + f_iattr14 bigint, + f_iattr15 bigint, + f_iattr16 bigint, + f_iattr17 bigint, + f_iattr18 bigint, + f_iattr19 bigint, + f_iattr20 bigint, + f_iattr21 bigint, + f_iattr22 bigint, + f_iattr23 bigint, + f_iattr24 bigint, + f_iattr25 bigint, + f_iattr26 bigint, + f_iattr27 bigint, + f_iattr28 bigint, + f_iattr29 bigint, + PRIMARY KEY (f_id), + FOREIGN KEY (f_al_id) REFERENCES airline (al_id), + FOREIGN KEY (f_depart_ap_id) REFERENCES airport (ap_id), + FOREIGN KEY (f_arrive_ap_id) REFERENCES airport (ap_id) +); +CREATE INDEX f_depart_time_idx ON flight (f_depart_time); + +-- +-- RESERVATION +-- +CREATE TABLE reservation ( + r_id bigint NOT NULL, + r_c_id varchar(128) NOT NULL, + r_f_id varchar(128) NOT NULL, + r_seat bigint NOT NULL, + r_price float NOT NULL, + r_iattr00 bigint, + r_iattr01 bigint, + r_iattr02 bigint, + r_iattr03 bigint, + r_iattr04 bigint, + r_iattr05 bigint, + r_iattr06 bigint, + r_iattr07 bigint, + r_iattr08 bigint, + UNIQUE (r_f_id, r_seat), + PRIMARY KEY (r_id, r_c_id, r_f_id), + FOREIGN KEY (r_c_id) REFERENCES customer (c_id), + FOREIGN KEY (r_f_id) REFERENCES flight (f_id) +); \ No newline at end of file diff --git a/src/main/resources/benchmarks/seats/dialect-yugabyte.xml b/src/main/resources/benchmarks/seats/dialect-yugabyte.xml new file mode 100644 index 000000000..450fb8050 --- /dev/null +++ b/src/main/resources/benchmarks/seats/dialect-yugabyte.xml @@ -0,0 +1,59 @@ + + + + + UPDATE customer SET C_BALANCE = C_BALANCE + ?, C_IATTR00 = ?, C_IATTR10 = C_IATTR10 - 1, C_IATTR11 = C_IATTR10 - 1 WHERE C_ID = ? + SELECT C_ID FROM customer WHERE C_ID_STR = ? + SELECT C_SATTR00, C_SATTR02, C_SATTR04, C_IATTR00, C_IATTR02, C_IATTR04, C_IATTR06, F_SEATS_LEFT, R_ID, R_SEAT, R_PRICE, R_IATTR00 FROM customer, flight, reservation WHERE C_ID = ? AND C_ID = R_C_ID AND F_ID = ? AND F_ID = R_F_ID + UPDATE frequent_flyer SET FF_IATTR10 = FF_IATTR10 - 1 WHERE FF_C_ID = ? AND FF_AL_ID = ? + DELETE FROM reservation WHERE R_ID = ? AND R_C_ID = ? AND R_F_ID = ? + UPDATE flight SET F_SEATS_LEFT = F_SEATS_LEFT + 1 WHERE F_ID = ? + SELECT C_ID, FF_AL_ID FROM customer, frequent_flyer WHERE FF_C_ID_STR = ? AND FF_C_ID = C_ID + + + SELECT F_ID, F_AL_ID, F_SEATS_LEFT, F_DEPART_AP_ID, F_DEPART_TIME, F_ARRIVE_AP_ID, F_ARRIVE_TIME, AL_NAME, AL_IATTR00, AL_IATTR01 FROM flight, airline WHERE F_DEPART_AP_ID = ? AND F_DEPART_TIME >= ? AND F_DEPART_TIME <= ? AND F_AL_ID = AL_ID AND F_ARRIVE_AP_ID IN (??) + SELECT F_ID, F_AL_ID, F_SEATS_LEFT, F_DEPART_AP_ID, F_DEPART_TIME, F_ARRIVE_AP_ID, F_ARRIVE_TIME, AL_NAME, AL_IATTR00, AL_IATTR01 FROM flight, airline WHERE F_DEPART_AP_ID = ? AND F_DEPART_TIME >= ? AND F_DEPART_TIME <= ? AND F_AL_ID = AL_ID AND F_ARRIVE_AP_ID IN (??) + SELECT F_ID, F_AL_ID, F_SEATS_LEFT, F_DEPART_AP_ID, F_DEPART_TIME, F_ARRIVE_AP_ID, F_ARRIVE_TIME, AL_NAME, AL_IATTR00, AL_IATTR01 FROM flight, airline WHERE F_DEPART_AP_ID = ? AND F_DEPART_TIME >= ? AND F_DEPART_TIME <= ? AND F_AL_ID = AL_ID AND F_ARRIVE_AP_ID IN (??) + SELECT AP_CODE, AP_NAME, AP_CITY, AP_LONGITUDE, AP_LATITUDE, CO_ID, CO_NAME, CO_CODE_2, CO_CODE_3 FROM airport, country WHERE AP_ID = ? AND AP_CO_ID = CO_ID + SELECT * FROM airport_distance WHERE D_AP_ID0 = ? AND D_DISTANCE <= ? ORDER BY D_DISTANCE ASC + + + SELECT F_STATUS, F_BASE_PRICE, F_SEATS_TOTAL, F_SEATS_LEFT, (F_BASE_PRICE + (F_BASE_PRICE * (1 - (F_SEATS_LEFT / F_SEATS_TOTAL)))) AS F_PRICE FROM flight WHERE F_ID = ? + SELECT R_ID, R_F_ID, R_SEAT FROM reservation WHERE R_F_ID = ? + + + SELECT * FROM config_profile + SELECT f_id FROM flight ORDER BY F_DEPART_TIME DESC LIMIT 10000 + SELECT AL_ID, AL_IATA_CODE FROM airline WHERE AL_IATA_CODE != '' + SELECT AP_ID, AP_CODE FROM airport + SELECT * FROM config_histograms + SELECT CO_ID, CO_CODE_3 FROM country + + + INSERT INTO reservation (R_ID, R_C_ID, R_F_ID, R_SEAT, R_PRICE, R_IATTR00, R_IATTR01, R_IATTR02, R_IATTR03, R_IATTR04, R_IATTR05, R_IATTR06, R_IATTR07, R_IATTR08) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + UPDATE customer SET C_IATTR10 = C_IATTR10 + 1, C_IATTR11 = C_IATTR11 + 1, C_IATTR12 = ?, C_IATTR13 = ?, C_IATTR14 = ?, C_IATTR15 = ? WHERE C_ID = ? + SELECT R_ID FROM reservation WHERE R_F_ID = ? AND R_C_ID = ? + SELECT F_AL_ID, F_SEATS_LEFT, airline.* FROM flight, airline WHERE F_ID = ? AND F_AL_ID = AL_ID + SELECT C_BASE_AP_ID, C_BALANCE, C_SATTR00 FROM customer WHERE C_ID = ? + UPDATE frequent_flyer SET FF_IATTR10 = FF_IATTR10 + 1, FF_IATTR11 = ?, FF_IATTR12 = ?, FF_IATTR13 = ?, FF_IATTR14 = ? WHERE FF_C_ID = ? AND FF_AL_ID = ? + SELECT R_ID FROM reservation WHERE R_F_ID = ? and R_SEAT = ? + UPDATE flight SET F_SEATS_LEFT = F_SEATS_LEFT - 1 WHERE F_ID = ? + + + UPDATE customer SET C_IATTR00 = ?, C_IATTR01 = ? WHERE C_ID = ? + SELECT * FROM customer WHERE C_ID = ? + SELECT C_ID FROM customer WHERE C_ID_STR = ? + UPDATE frequent_flyer SET FF_IATTR00 = ?, FF_IATTR01 = ? WHERE FF_C_ID = ? AND FF_AL_ID = ? + SELECT * FROM frequent_flyer WHERE FF_C_ID = ? + SELECT * FROM airport, country WHERE AP_ID = ? AND AP_CO_ID = CO_ID + + + UPDATE reservation SET R_SEAT = ?, R_IATTR02 = ? WHERE R_ID = ? AND R_C_ID = ? AND R_F_ID = ? + UPDATE reservation SET R_SEAT = ?, R_IATTR01 = ? WHERE R_ID = ? AND R_C_ID = ? AND R_F_ID = ? + UPDATE reservation SET R_SEAT = ?, R_IATTR03 = ? WHERE R_ID = ? AND R_C_ID = ? AND R_F_ID = ? + SELECT R_ID FROM reservation WHERE R_F_ID = ? AND R_C_ID = ? + SELECT R_ID FROM reservation WHERE R_F_ID = ? and R_SEAT = ? + UPDATE reservation SET R_SEAT = ?, R_IATTR00 = ? WHERE R_ID = ? AND R_C_ID = ? AND R_F_ID = ? + + + diff --git a/src/main/resources/benchmarks/sibench/ddl-yugabyte.sql b/src/main/resources/benchmarks/sibench/ddl-yugabyte.sql new file mode 100644 index 000000000..20a1b4f22 --- /dev/null +++ b/src/main/resources/benchmarks/sibench/ddl-yugabyte.sql @@ -0,0 +1,5 @@ +DROP TABLE IF EXISTS sitest; +CREATE TABLE sitest ( + id int PRIMARY KEY, + value int NOT NULL +); \ No newline at end of file diff --git a/src/main/resources/benchmarks/smallbank/ddl-yugabyte.sql b/src/main/resources/benchmarks/smallbank/ddl-yugabyte.sql new file mode 100644 index 000000000..f5bf852d2 --- /dev/null +++ b/src/main/resources/benchmarks/smallbank/ddl-yugabyte.sql @@ -0,0 +1,24 @@ +DROP TABLE IF EXISTS checking; +DROP TABLE IF EXISTS savings; +DROP TABLE IF EXISTS accounts; + +CREATE TABLE accounts ( + custid bigint NOT NULL, + name varchar(64) NOT NULL, + CONSTRAINT pk_accounts PRIMARY KEY (custid) +); +CREATE INDEX idx_accounts_name ON accounts (name); + +CREATE TABLE savings ( + custid bigint NOT NULL, + bal float NOT NULL, + CONSTRAINT pk_savings PRIMARY KEY (custid), + FOREIGN KEY (custid) REFERENCES accounts (custid) +); + +CREATE TABLE checking ( + custid bigint NOT NULL, + bal float NOT NULL, + CONSTRAINT pk_checking PRIMARY KEY (custid), + FOREIGN KEY (custid) REFERENCES accounts (custid) +); diff --git a/src/main/resources/benchmarks/tatp/ddl-yugabyte.sql b/src/main/resources/benchmarks/tatp/ddl-yugabyte.sql new file mode 100644 index 000000000..194ca22d4 --- /dev/null +++ b/src/main/resources/benchmarks/tatp/ddl-yugabyte.sql @@ -0,0 +1,75 @@ +DROP TABLE IF EXISTS access_info CASCADE; +DROP TABLE IF EXISTS call_forwarding CASCADE; +DROP TABLE IF EXISTS special_facility CASCADE; +DROP TABLE IF EXISTS subscriber CASCADE; + +CREATE TABLE subscriber ( + s_id integer NOT NULL PRIMARY KEY, + sub_nbr varchar(15) NOT NULL UNIQUE, + bit_1 smallint, + bit_2 smallint, + bit_3 smallint, + bit_4 smallint, + bit_5 smallint, + bit_6 smallint, + bit_7 smallint, + bit_8 smallint, + bit_9 smallint, + bit_10 smallint, + hex_1 smallint, + hex_2 smallint, + hex_3 smallint, + hex_4 smallint, + hex_5 smallint, + hex_6 smallint, + hex_7 smallint, + hex_8 smallint, + hex_9 smallint, + hex_10 smallint, + byte2_1 smallint, + byte2_2 smallint, + byte2_3 smallint, + byte2_4 smallint, + byte2_5 smallint, + byte2_6 smallint, + byte2_7 smallint, + byte2_8 smallint, + byte2_9 smallint, + byte2_10 smallint, + msc_location integer, + vlr_location integer +); + +CREATE TABLE access_info ( + s_id integer NOT NULL, + ai_type smallint NOT NULL, + data1 smallint, + data2 smallint, + data3 varchar(3), + data4 varchar(5), + PRIMARY KEY (s_id, ai_type), + FOREIGN KEY (s_id) REFERENCES subscriber (s_id) +); + +CREATE TABLE special_facility ( + s_id integer NOT NULL, + sf_type smallint NOT NULL, + is_active smallint NOT NULL, + error_cntrl smallint, + data_a smallint, + data_b varchar(5), + PRIMARY KEY (s_id, sf_type), + FOREIGN KEY (s_id) REFERENCES subscriber (s_id) +); + +CREATE TABLE call_forwarding ( + s_id integer NOT NULL, + sf_type smallint NOT NULL, + start_time smallint NOT NULL, + end_time smallint, + numberx varchar(15), + PRIMARY KEY (s_id, sf_type, start_time), + FOREIGN KEY (s_id, sf_type) REFERENCES special_facility (s_id, sf_type) +); + +CREATE INDEX idx_cf ON call_forwarding (s_id); \ No newline at end of file diff --git a/src/main/resources/benchmarks/tpcc/ddl-yugabyte.sql b/src/main/resources/benchmarks/tpcc/ddl-yugabyte.sql new file mode 100644 index 000000000..f4914545d --- /dev/null +++ b/src/main/resources/benchmarks/tpcc/ddl-yugabyte.sql @@ -0,0 +1,150 @@ +DROP TABLE IF EXISTS history CASCADE; +DROP TABLE IF EXISTS new_order CASCADE; +DROP TABLE IF EXISTS order_line CASCADE; +DROP TABLE IF EXISTS oorder CASCADE; +DROP TABLE IF EXISTS customer CASCADE; +DROP TABLE IF EXISTS district CASCADE; +DROP TABLE IF EXISTS stock CASCADE; +DROP TABLE IF EXISTS item CASCADE; +DROP TABLE IF EXISTS warehouse CASCADE; + +CREATE TABLE warehouse ( + w_id int NOT NULL, + w_ytd decimal(12, 2) NOT NULL, + w_tax decimal(4, 4) NOT NULL, + w_name varchar(10) NOT NULL, + w_street_1 varchar(20) NOT NULL, + w_street_2 varchar(20) NOT NULL, + w_city varchar(20) NOT NULL, + w_state char(2) NOT NULL, + w_zip char(9) NOT NULL, + PRIMARY KEY (w_id) +); + +CREATE TABLE item ( + i_id int NOT NULL, + i_name varchar(24) NOT NULL, + i_price decimal(5, 2) NOT NULL, + i_data varchar(50) NOT NULL, + i_im_id int NOT NULL, + PRIMARY KEY (i_id) +); + +CREATE TABLE stock ( + s_w_id int NOT NULL, + s_i_id int NOT NULL, + s_quantity int NOT NULL, + s_ytd decimal(8, 2) NOT NULL, + s_order_cnt int NOT NULL, + s_remote_cnt int NOT NULL, + s_data varchar(50) NOT NULL, + s_dist_01 char(24) NOT NULL, + s_dist_02 char(24) NOT NULL, + s_dist_03 char(24) NOT NULL, + s_dist_04 char(24) NOT NULL, + s_dist_05 char(24) NOT NULL, + s_dist_06 char(24) NOT NULL, + s_dist_07 char(24) NOT NULL, + s_dist_08 char(24) NOT NULL, + s_dist_09 char(24) NOT NULL, + s_dist_10 char(24) NOT NULL, + FOREIGN KEY (s_w_id) REFERENCES warehouse (w_id) ON DELETE CASCADE, + FOREIGN KEY (s_i_id) REFERENCES item (i_id) ON DELETE CASCADE, + PRIMARY KEY (s_w_id, s_i_id) +); + +CREATE TABLE district ( + d_w_id int NOT NULL, + d_id int NOT NULL, + d_ytd decimal(12, 2) NOT NULL, + d_tax decimal(4, 4) NOT NULL, + d_next_o_id int NOT NULL, + d_name varchar(10) NOT NULL, + d_street_1 varchar(20) NOT NULL, + d_street_2 varchar(20) NOT NULL, + d_city varchar(20) NOT NULL, + d_state char(2) NOT NULL, + d_zip char(9) NOT NULL, + FOREIGN KEY (d_w_id) REFERENCES warehouse (w_id) ON DELETE CASCADE, + PRIMARY KEY (d_w_id, d_id) +); + +CREATE TABLE customer ( + c_w_id int NOT NULL, + c_d_id int NOT NULL, + c_id int NOT NULL, + c_discount decimal(4, 4) NOT NULL, + c_credit char(2) NOT NULL, + c_last varchar(16) NOT NULL, + c_first varchar(16) NOT NULL, + c_credit_lim decimal(12, 2) NOT NULL, + c_balance decimal(12, 2) NOT NULL, + c_ytd_payment float NOT NULL, + c_payment_cnt int NOT NULL, + c_delivery_cnt int NOT NULL, + c_street_1 varchar(20) NOT NULL, + c_street_2 varchar(20) NOT NULL, + c_city varchar(20) NOT NULL, + c_state char(2) NOT NULL, + c_zip char(9) NOT NULL, + c_phone char(16) NOT NULL, + c_since timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + c_middle char(2) NOT NULL, + c_data varchar(500) NOT NULL, + FOREIGN KEY (c_w_id, c_d_id) REFERENCES district (d_w_id, d_id) ON DELETE CASCADE, + PRIMARY KEY (c_w_id, c_d_id, c_id) +); + +CREATE TABLE history ( + h_c_id int NOT NULL, + h_c_d_id int NOT NULL, + h_c_w_id int NOT NULL, + h_d_id int NOT NULL, + h_w_id int NOT NULL, + h_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + h_amount decimal(6, 2) NOT NULL, + h_data varchar(24) NOT NULL, + FOREIGN KEY (h_c_w_id, h_c_d_id, h_c_id) REFERENCES customer (c_w_id, c_d_id, c_id) ON DELETE CASCADE, + FOREIGN KEY (h_w_id, h_d_id) REFERENCES district (d_w_id, d_id) ON DELETE CASCADE +); + +CREATE TABLE oorder ( + o_w_id int NOT NULL, + o_d_id int NOT NULL, + o_id int NOT NULL, + o_c_id int NOT NULL, + o_carrier_id int DEFAULT NULL, + o_ol_cnt int NOT NULL, + o_all_local int NOT NULL, + o_entry_d timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (o_w_id, o_d_id, o_id), + FOREIGN KEY (o_w_id, o_d_id, o_c_id) REFERENCES customer (c_w_id, c_d_id, c_id) ON DELETE CASCADE, + UNIQUE (o_w_id, o_d_id, o_c_id, o_id) +); + +CREATE TABLE new_order ( + no_w_id int NOT NULL, + no_d_id int NOT NULL, + no_o_id int NOT NULL, + FOREIGN KEY (no_w_id, no_d_id, no_o_id) REFERENCES oorder (o_w_id, o_d_id, o_id) ON DELETE CASCADE, + PRIMARY KEY (no_w_id, no_d_id, no_o_id) +); + +CREATE TABLE order_line ( + ol_w_id int NOT NULL, + ol_d_id int NOT NULL, + ol_o_id int NOT NULL, + ol_number int NOT NULL, + ol_i_id int NOT NULL, + ol_delivery_d timestamp NULL DEFAULT NULL, + ol_amount decimal(6, 2) NOT NULL, + ol_supply_w_id int NOT NULL, + ol_quantity decimal(6,2) NOT NULL, + ol_dist_info char(24) NOT NULL, + FOREIGN KEY (ol_w_id, ol_d_id, ol_o_id) REFERENCES oorder (o_w_id, o_d_id, o_id) ON DELETE CASCADE, + FOREIGN KEY (ol_supply_w_id, ol_i_id) REFERENCES stock (s_w_id, s_i_id) ON DELETE CASCADE, + PRIMARY KEY (ol_w_id, ol_d_id, ol_o_id, ol_number) +); + +CREATE INDEX idx_customer_name ON customer (c_w_id, c_d_id, c_last, c_first); +CREATE INDEX idx_order ON oorder (o_w_id, o_d_id, o_c_id, o_id); \ No newline at end of file diff --git a/src/main/resources/benchmarks/tpcds/ddl-yugabyte.sql b/src/main/resources/benchmarks/tpcds/ddl-yugabyte.sql new file mode 100644 index 000000000..01c9a148d --- /dev/null +++ b/src/main/resources/benchmarks/tpcds/ddl-yugabyte.sql @@ -0,0 +1,545 @@ +DROP TABLE IF EXISTS call_center; +DROP TABLE IF EXISTS catalog_page; +DROP TABLE IF EXISTS catalog_returns; +DROP TABLE IF EXISTS catalog_sales; +DROP TABLE IF EXISTS customer; +DROP TABLE IF EXISTS customer_address; +DROP TABLE IF EXISTS customer_demographics; +DROP TABLE IF EXISTS date_dim; +DROP TABLE IF EXISTS household_demographics; +DROP TABLE IF EXISTS income_band; +DROP TABLE IF EXISTS inventory; +DROP TABLE IF EXISTS item; +DROP TABLE IF EXISTS promotion; +DROP TABLE IF EXISTS reason; +DROP TABLE IF EXISTS ship_mode; +DROP TABLE IF EXISTS store; +DROP TABLE IF EXISTS store_returns; +DROP TABLE IF EXISTS store_sales; +DROP TABLE IF EXISTS time_dim; +DROP TABLE IF EXISTS warehouse; +DROP TABLE IF EXISTS web_page; +DROP TABLE IF EXISTS web_returns; +DROP TABLE IF EXISTS web_sales; +DROP TABLE IF EXISTS web_site; + +CREATE TABLE customer_address ( + ca_address_sk integer NOT NULL, + ca_address_id char(16) NOT NULL, + ca_street_number char(10), + ca_street_name varchar(60), + ca_street_type char(15), + ca_suite_number char(10), + ca_city varchar(60), + ca_county varchar(30), + ca_state char(2), + ca_zip char(10), + ca_country varchar(20), + ca_gmt_offset decimal(5, 2), + ca_location_type char(20), + PRIMARY KEY (ca_address_sk) +); + +CREATE TABLE customer_demographics ( + cd_demo_sk integer NOT NULL, + cd_gender char(1), + cd_marital_status char(1), + cd_education_status char(20), + cd_purchase_estimate integer, + cd_credit_rating char(10), + cd_dep_count integer, + cd_dep_employed_count integer, + cd_dep_college_count integer, + PRIMARY KEY (cd_demo_sk) +); + +CREATE TABLE date_dim ( + d_date_sk integer NOT NULL, + d_date_id char(16) NOT NULL, + d_date date, + d_month_seq integer, + d_week_seq integer, + d_quarter_seq integer, + d_year integer, + d_dow integer, + d_moy integer, + d_dom integer, + d_qoy integer, + d_fy_year integer, + d_fy_quarter_seq integer, + d_fy_week_seq integer, + d_day_name char(9), + d_quarter_name char(6), + d_holiday char(1), + d_weekend char(1), + d_following_holiday char(1), + d_first_dom integer, + d_last_dom integer, + d_same_day_ly integer, + d_same_day_lq integer, + d_current_day char(1), + d_current_week char(1), + d_current_month char(1), + d_current_quarter char(1), + d_current_year char(1), + PRIMARY KEY (d_date_sk) +); + +CREATE TABLE warehouse ( + w_warehouse_sk integer NOT NULL, + w_warehouse_id char(16) NOT NULL, + w_warehouse_name varchar(20), + w_warehouse_sq_ft integer, + w_street_number char(10), + w_street_name varchar(60), + w_street_type char(15), + w_suite_number char(10), + w_city varchar(60), + w_county varchar(30), + w_state char(2), + w_zip char(10), + w_country varchar(20), + w_gmt_offset decimal(5, 2), + PRIMARY KEY (w_warehouse_sk) +); + +CREATE TABLE ship_mode ( + sm_ship_mode_sk integer NOT NULL, + sm_ship_mode_id char(16) NOT NULL, + sm_type char(30), + sm_code char(10), + sm_carrier char(20), + sm_contract char(20), + PRIMARY KEY (sm_ship_mode_sk) +); + +CREATE TABLE time_dim ( + t_time_sk integer NOT NULL, + t_time_id char(16) NOT NULL, + t_time integer, + t_hour integer, + t_minute integer, + t_second integer, + t_am_pm char(2), + t_shift char(20), + t_sub_shift char(20), + t_meal_time char(20), + PRIMARY KEY (t_time_sk) +); + +CREATE TABLE reason ( + r_reason_sk integer NOT NULL, + r_reason_id char(16) NOT NULL, + r_reason_desc char(100), + PRIMARY KEY (r_reason_sk) +); + +CREATE TABLE income_band ( + ib_income_band_sk integer NOT NULL, + ib_lower_bound integer, + ib_upper_bound integer, + PRIMARY KEY (ib_income_band_sk) +); + +CREATE TABLE item ( + i_item_sk integer NOT NULL, + i_item_id char(16) NOT NULL, + i_rec_start_date date, + i_rec_end_date date, + i_item_desc varchar(200), + i_current_price decimal(7, 2), + i_wholesale_cost decimal(7, 2), + i_brand_id integer, + i_brand char(50), + i_class_id integer, + i_class char(50), + i_category_id integer, + i_category char(50), + i_manufact_id integer, + i_manufact char(50), + i_size char(20), + i_formulation char(20), + i_color char(20), + i_units char(10), + i_container char(10), + i_manager_id integer, + i_product_name char(50), + PRIMARY KEY (i_item_sk) +); + +CREATE TABLE store ( + s_store_sk integer NOT NULL, + s_store_id char(16) NOT NULL, + s_rec_start_date date, + s_rec_end_date date, + s_closed_date_sk integer, + s_store_name varchar(50), + s_number_employees integer, + s_floor_space integer, + s_hours char(20), + s_manager varchar(40), + s_market_id integer, + s_geography_class varchar(100), + s_market_desc varchar(100), + s_market_manager varchar(40), + s_division_id integer, + s_division_name varchar(50), + s_company_id integer, + s_company_name varchar(50), + s_street_number varchar(10), + s_street_name varchar(60), + s_street_type char(15), + s_suite_number char(10), + s_city varchar(60), + s_county varchar(30), + s_state char(2), + s_zip char(10), + s_country varchar(20), + s_gmt_offset decimal(5, 2), + s_tax_precentage decimal(5, 2), + PRIMARY KEY (s_store_sk) +); + +CREATE TABLE call_center ( + cc_call_center_sk integer NOT NULL, + cc_call_center_id char(16) NOT NULL, + cc_rec_start_date date, + cc_rec_end_date date, + cc_closed_date_sk integer, + cc_open_date_sk integer, + cc_name varchar(50), + cc_class varchar(50), + cc_employees integer, + cc_sq_ft integer, + cc_hours char(20), + cc_manager varchar(40), + cc_mkt_id integer, + cc_mkt_class char(50), + cc_mkt_desc varchar(100), + cc_market_manager varchar(40), + cc_division integer, + cc_division_name varchar(50), + cc_company integer, + cc_company_name char(50), + cc_street_number char(10), + cc_street_name varchar(60), + cc_street_type char(15), + cc_suite_number char(10), + cc_city varchar(60), + cc_county varchar(30), + cc_state char(2), + cc_zip char(10), + cc_country varchar(20), + cc_gmt_offset decimal(5, 2), + cc_tax_percentage decimal(5, 2), + PRIMARY KEY (cc_call_center_sk) +); + +CREATE TABLE customer ( + c_customer_sk integer NOT NULL, + c_customer_id char(16) NOT NULL, + c_current_cdemo_sk integer, + c_current_hdemo_sk integer, + c_current_addr_sk integer, + c_first_shipto_date_sk integer, + c_first_sales_date_sk integer, + c_salutation char(10), + c_first_name char(20), + c_last_name char(30), + c_preferred_cust_flag char(1), + c_birth_day integer, + c_birth_month integer, + c_birth_year integer, + c_birth_country varchar(20), + c_login char(13), + c_email_address char(50), + c_last_review_date_sk integer, + PRIMARY KEY (c_customer_sk) +); + +CREATE TABLE web_site ( + web_site_sk integer NOT NULL, + web_site_id char(16) NOT NULL, + web_rec_start_date date, + web_rec_end_date date, + web_name varchar(50), + web_open_date_sk integer, + web_close_date_sk integer, + web_class varchar(50), + web_manager varchar(40), + web_mkt_id integer, + web_mkt_class varchar(50), + web_mkt_desc varchar(100), + web_market_manager varchar(40), + web_company_id integer, + web_company_name char(50), + web_street_number char(10), + web_street_name varchar(60), + web_street_type char(15), + web_suite_number char(10), + web_city varchar(60), + web_county varchar(30), + web_state char(2), + web_zip char(10), + web_country varchar(20), + web_gmt_offset decimal(5, 2), + web_tax_percentage decimal(5, 2), + PRIMARY KEY (web_site_sk) +); + +CREATE TABLE store_returns ( + sr_returned_date_sk integer, + sr_return_time_sk integer, + sr_item_sk integer NOT NULL, + sr_customer_sk integer, + sr_cdemo_sk integer, + sr_hdemo_sk integer, + sr_addr_sk integer, + sr_store_sk integer, + sr_reason_sk integer, + sr_ticket_number integer NOT NULL, + sr_return_quantity integer, + sr_return_amt decimal(7, 2), + sr_return_tax decimal(7, 2), + sr_return_amt_inc_tax decimal(7, 2), + sr_fee decimal(7, 2), + sr_return_ship_cost decimal(7, 2), + sr_refunded_cash decimal(7, 2), + sr_reversed_charge decimal(7, 2), + sr_store_credit decimal(7, 2), + sr_net_loss decimal(7, 2), + PRIMARY KEY (sr_item_sk, sr_ticket_number) +); + +CREATE TABLE household_demographics ( + hd_demo_sk integer NOT NULL, + hd_income_band_sk integer, + hd_buy_potential char(15), + hd_dep_count integer, + hd_vehicle_count integer, + PRIMARY KEY (hd_demo_sk) +); + +CREATE TABLE web_page ( + wp_web_page_sk integer NOT NULL, + wp_web_page_id char(16) NOT NULL, + wp_rec_start_date date, + wp_rec_end_date date, + wp_creation_date_sk integer, + wp_access_date_sk integer, + wp_autogen_flag char(1), + wp_customer_sk integer, + wp_url varchar(100), + wp_type char(50), + wp_char_count integer, + wp_link_count integer, + wp_image_count integer, + wp_max_ad_count integer, + PRIMARY KEY (wp_web_page_sk) +); + +CREATE TABLE promotion ( + p_promo_sk integer NOT NULL, + p_promo_id char(16) NOT NULL, + p_start_date_sk integer, + p_end_date_sk integer, + p_item_sk integer, + p_cost decimal(15, 2), + p_response_target integer, + p_promo_name char(50), + p_channel_dmail char(1), + p_channel_email char(1), + p_channel_catalog char(1), + p_channel_tv char(1), + p_channel_radio char(1), + p_channel_press char(1), + p_channel_event char(1), + p_channel_demo char(1), + p_channel_details varchar(100), + p_purpose char(15), + p_discount_active char(1), + PRIMARY KEY (p_promo_sk) +); + +CREATE TABLE catalog_page ( + cp_catalog_page_sk integer NOT NULL, + cp_catalog_page_id char(16) NOT NULL, + cp_start_date_sk integer, + cp_end_date_sk integer, + cp_department varchar(50), + cp_catalog_number integer, + cp_catalog_page_number integer, + cp_description varchar(100), + cp_type varchar(100), + PRIMARY KEY (cp_catalog_page_sk) +); + +CREATE TABLE inventory ( + inv_date_sk integer NOT NULL, + inv_item_sk integer NOT NULL, + inv_warehouse_sk integer NOT NULL, + inv_quantity_on_hand integer, + PRIMARY KEY (inv_date_sk, inv_item_sk, inv_warehouse_sk) +); + +CREATE TABLE catalog_returns ( + cr_returned_date_sk integer, + cr_returned_time_sk integer, + cr_item_sk integer NOT NULL, + cr_refunded_customer_sk integer, + cr_refunded_cdemo_sk integer, + cr_refunded_hdemo_sk integer, + cr_refunded_addr_sk integer, + cr_returning_customer_sk integer, + cr_returning_cdemo_sk integer, + cr_returning_hdemo_sk integer, + cr_returning_addr_sk integer, + cr_call_center_sk integer, + cr_catalog_page_sk integer, + cr_ship_mode_sk integer, + cr_warehouse_sk integer, + cr_reason_sk integer, + cr_order_number integer NOT NULL, + cr_return_quantity integer, + cr_return_amount decimal(7, 2), + cr_return_tax decimal(7, 2), + cr_return_amt_inc_tax decimal(7, 2), + cr_fee decimal(7, 2), + cr_return_ship_cost decimal(7, 2), + cr_refunded_cash decimal(7, 2), + cr_reversed_charge decimal(7, 2), + cr_store_credit decimal(7, 2), + cr_net_loss decimal(7, 2), + PRIMARY KEY (cr_item_sk, cr_order_number) +); + +CREATE TABLE web_returns ( + wr_returned_date_sk integer, + wr_returned_time_sk integer, + wr_item_sk integer NOT NULL, + wr_refunded_customer_sk integer, + wr_refunded_cdemo_sk integer, + wr_refunded_hdemo_sk integer, + wr_refunded_addr_sk integer, + wr_returning_customer_sk integer, + wr_returning_cdemo_sk integer, + wr_returning_hdemo_sk integer, + wr_returning_addr_sk integer, + wr_web_page_sk integer, + wr_reason_sk integer, + wr_order_number integer NOT NULL, + wr_return_quantity integer, + wr_return_amt decimal(7, 2), + wr_return_tax decimal(7, 2), + wr_return_amt_inc_tax decimal(7, 2), + wr_fee decimal(7, 2), + wr_return_ship_cost decimal(7, 2), + wr_refunded_cash decimal(7, 2), + wr_reversed_charge decimal(7, 2), + wr_account_credit decimal(7, 2), + wr_net_loss decimal(7, 2), + PRIMARY KEY (wr_item_sk, wr_order_number) +); + +CREATE TABLE web_sales ( + ws_sold_date_sk integer, + ws_sold_time_sk integer, + ws_ship_date_sk integer, + ws_item_sk integer NOT NULL, + ws_bill_customer_sk integer, + ws_bill_cdemo_sk integer, + ws_bill_hdemo_sk integer, + ws_bill_addr_sk integer, + ws_ship_customer_sk integer, + ws_ship_cdemo_sk integer, + ws_ship_hdemo_sk integer, + ws_ship_addr_sk integer, + ws_web_page_sk integer, + ws_web_site_sk integer, + ws_ship_mode_sk integer, + ws_warehouse_sk integer, + ws_promo_sk integer, + ws_order_number integer NOT NULL, + ws_quantity integer, + ws_wholesale_cost decimal(7, 2), + ws_list_price decimal(7, 2), + ws_sales_price decimal(7, 2), + ws_ext_discount_amt decimal(7, 2), + ws_ext_sales_price decimal(7, 2), + ws_ext_wholesale_cost decimal(7, 2), + ws_ext_list_price decimal(7, 2), + ws_ext_tax decimal(7, 2), + ws_coupon_amt decimal(7, 2), + ws_ext_ship_cost decimal(7, 2), + ws_net_paid decimal(7, 2), + ws_net_paid_inc_tax decimal(7, 2), + ws_net_paid_inc_ship decimal(7, 2), + ws_net_paid_inc_ship_tax decimal(7, 2), + ws_net_profit decimal(7, 2), + PRIMARY KEY (ws_item_sk, ws_order_number) +); + +CREATE TABLE catalog_sales ( + cs_sold_date_sk integer, + cs_sold_time_sk integer, + cs_ship_date_sk integer, + cs_bill_customer_sk integer, + cs_bill_cdemo_sk integer, + cs_bill_hdemo_sk integer, + cs_bill_addr_sk integer, + cs_ship_customer_sk integer, + cs_ship_cdemo_sk integer, + cs_ship_hdemo_sk integer, + cs_ship_addr_sk integer, + cs_call_center_sk integer, + cs_catalog_page_sk integer, + cs_ship_mode_sk integer, + cs_warehouse_sk integer, + cs_item_sk integer NOT NULL, + cs_promo_sk integer, + cs_order_number integer NOT NULL, + cs_quantity integer, + cs_wholesale_cost decimal(7, 2), + cs_list_price decimal(7, 2), + cs_sales_price decimal(7, 2), + cs_ext_discount_amt decimal(7, 2), + cs_ext_sales_price decimal(7, 2), + cs_ext_wholesale_cost decimal(7, 2), + cs_ext_list_price decimal(7, 2), + cs_ext_tax decimal(7, 2), + cs_coupon_amt decimal(7, 2), + cs_ext_ship_cost decimal(7, 2), + cs_net_paid decimal(7, 2), + cs_net_paid_inc_tax decimal(7, 2), + cs_net_paid_inc_ship decimal(7, 2), + cs_net_paid_inc_ship_tax decimal(7, 2), + cs_net_profit decimal(7, 2), + PRIMARY KEY (cs_item_sk, cs_order_number) +); + +CREATE TABLE store_sales ( + ss_sold_date_sk integer, + ss_sold_time_sk integer, + ss_item_sk integer NOT NULL, + ss_customer_sk integer, + ss_cdemo_sk integer, + ss_hdemo_sk integer, + ss_addr_sk integer, + ss_store_sk integer, + ss_promo_sk integer, + ss_ticket_number integer NOT NULL, + ss_quantity integer, + ss_wholesale_cost decimal(7, 2), + ss_list_price decimal(7, 2), + ss_sales_price decimal(7, 2), + ss_ext_discount_amt decimal(7, 2), + ss_ext_sales_price decimal(7, 2), + ss_ext_wholesale_cost decimal(7, 2), + ss_ext_list_price decimal(7, 2), + ss_ext_tax decimal(7, 2), + ss_coupon_amt decimal(7, 2), + ss_net_paid decimal(7, 2), + ss_net_paid_inc_tax decimal(7, 2), + ss_net_profit decimal(7, 2), + PRIMARY KEY (ss_item_sk, ss_ticket_number) +); \ No newline at end of file diff --git a/src/main/resources/benchmarks/tpch/ddl-yugabyte.sql b/src/main/resources/benchmarks/tpch/ddl-yugabyte.sql new file mode 100644 index 000000000..617e3cb61 --- /dev/null +++ b/src/main/resources/benchmarks/tpch/ddl-yugabyte.sql @@ -0,0 +1,132 @@ +DROP TABLE IF EXISTS nation CASCADE; +DROP TABLE IF EXISTS region CASCADE; +DROP TABLE IF EXISTS part CASCADE; +DROP TABLE IF EXISTS supplier CASCADE; +DROP TABLE IF EXISTS partsupp CASCADE; +DROP TABLE IF EXISTS orders CASCADE; +DROP TABLE IF EXISTS customer CASCADE; +DROP TABLE IF EXISTS lineitem CASCADE; + +CREATE TABLE region ( + r_regionkey integer NOT NULL, + r_name char(25) NOT NULL, + r_comment varchar(152), + PRIMARY KEY (r_regionkey) +); +CREATE UNIQUE INDEX r_rk ON region (r_regionkey ASC); + +CREATE TABLE nation ( + n_nationkey integer NOT NULL, + n_name char(25) NOT NULL, + n_regionkey integer NOT NULL, + n_comment varchar(152), + PRIMARY KEY (n_nationkey), + FOREIGN KEY (n_regionkey) REFERENCES region (r_regionkey) ON DELETE CASCADE +); +CREATE UNIQUE INDEX n_nk ON nation (n_nationkey ASC); +CREATE INDEX n_rk ON nation (n_regionkey ASC); + +CREATE TABLE part ( + p_partkey integer NOT NULL, + p_name varchar(55) NOT NULL, + p_mfgr char(25) NOT NULL, + p_brand char(10) NOT NULL, + p_type varchar(25) NOT NULL, + p_size integer NOT NULL, + p_container char(10) NOT NULL, + p_retailprice decimal(15, 2) NOT NULL, + p_comment varchar(23) NOT NULL, + PRIMARY KEY (p_partkey) +); +CREATE UNIQUE INDEX p_pk ON part (p_partkey ASC); + +CREATE TABLE supplier ( + s_suppkey integer NOT NULL, + s_name char(25) NOT NULL, + s_address varchar(40) NOT NULL, + s_nationkey integer NOT NULL, + s_phone char(15) NOT NULL, + s_acctbal decimal(15, 2) NOT NULL, + s_comment varchar(101) NOT NULL, + PRIMARY KEY (s_suppkey), + FOREIGN KEY (s_nationkey) REFERENCES nation (n_nationkey) ON DELETE CASCADE +); +CREATE UNIQUE INDEX s_sk ON supplier (s_suppkey ASC); +CREATE INDEX s_nk ON supplier (s_nationkey ASC); + +CREATE TABLE partsupp ( + ps_partkey integer NOT NULL, + ps_suppkey integer NOT NULL, + ps_availqty integer NOT NULL, + ps_supplycost decimal(15, 2) NOT NULL, + ps_comment varchar(199) NOT NULL, + PRIMARY KEY (ps_partkey, ps_suppkey), + FOREIGN KEY (ps_partkey) REFERENCES part (p_partkey) ON DELETE CASCADE, + FOREIGN KEY (ps_suppkey) REFERENCES supplier (s_suppkey) ON DELETE CASCADE +); +CREATE INDEX ps_pk ON partsupp (ps_partkey ASC); +CREATE INDEX ps_sk ON partsupp (ps_suppkey ASC); +CREATE UNIQUE INDEX ps_pk_sk ON partsupp (ps_partkey ASC, ps_suppkey ASC); +CREATE UNIQUE INDEX ps_sk_pk ON partsupp (ps_suppkey ASC, ps_partkey ASC); + +CREATE TABLE customer ( + c_custkey integer NOT NULL, + c_name varchar(25) NOT NULL, + c_address varchar(40) NOT NULL, + c_nationkey integer NOT NULL, + c_phone char(15) NOT NULL, + c_acctbal decimal(15, 2) NOT NULL, + c_mktsegment char(10) NOT NULL, + c_comment varchar(117) NOT NULL, + PRIMARY KEY (c_custkey), + FOREIGN KEY (c_nationkey) REFERENCES nation (n_nationkey) ON DELETE CASCADE +); +CREATE UNIQUE INDEX c_ck ON customer (c_custkey ASC); +CREATE INDEX c_nk ON customer (c_nationkey ASC); + +CREATE TABLE orders ( + o_orderkey integer NOT NULL, + o_custkey integer NOT NULL, + o_orderstatus char(1) NOT NULL, + o_totalprice decimal(15, 2) NOT NULL, + o_orderdate date NOT NULL, + o_orderpriority char(15) NOT NULL, + o_clerk char(15) NOT NULL, + o_shippriority integer NOT NULL, + o_comment varchar(79) NOT NULL, + PRIMARY KEY (o_orderkey), + FOREIGN KEY (o_custkey) REFERENCES customer (c_custkey) ON DELETE CASCADE +); +CREATE UNIQUE INDEX o_ok ON orders (o_orderkey ASC); +CREATE INDEX o_ck ON orders (o_custkey ASC); +CREATE INDEX o_od ON orders (o_orderdate ASC); + +CREATE TABLE lineitem ( + l_orderkey integer NOT NULL, + l_partkey integer NOT NULL, + l_suppkey integer NOT NULL, + l_linenumber integer NOT NULL, + l_quantity decimal(15, 2) NOT NULL, + l_extendedprice decimal(15, 2) NOT NULL, + l_discount decimal(15, 2) NOT NULL, + l_tax decimal(15, 2) NOT NULL, + l_returnflag char(1) NOT NULL, + l_linestatus char(1) NOT NULL, + l_shipdate date NOT NULL, + l_commitdate date NOT NULL, + l_receiptdate date NOT NULL, + l_shipinstruct char(25) NOT NULL, + l_shipmode char(10) NOT NULL, + l_comment varchar(44) NOT NULL, + PRIMARY KEY (l_orderkey, l_linenumber), + FOREIGN KEY (l_orderkey) REFERENCES orders (o_orderkey) ON DELETE CASCADE, + FOREIGN KEY (l_partkey, l_suppkey) REFERENCES partsupp (ps_partkey, ps_suppkey) ON DELETE CASCADE +); +CREATE INDEX l_ok ON lineitem (l_orderkey ASC); +CREATE INDEX l_pk ON lineitem (l_partkey ASC); +CREATE INDEX l_sk ON lineitem (l_suppkey ASC); +CREATE INDEX l_sd ON lineitem (l_shipdate ASC); +CREATE INDEX l_cd ON lineitem (l_commitdate ASC); +CREATE INDEX l_rd ON lineitem (l_receiptdate ASC); +CREATE INDEX l_pk_sk ON lineitem (l_partkey ASC, l_suppkey ASC); +CREATE INDEX l_sk_pk ON lineitem (l_suppkey ASC, l_partkey ASC); \ No newline at end of file diff --git a/src/main/resources/benchmarks/twitter/ddl-yugabyte.sql b/src/main/resources/benchmarks/twitter/ddl-yugabyte.sql new file mode 100644 index 000000000..4085fd9cc --- /dev/null +++ b/src/main/resources/benchmarks/twitter/ddl-yugabyte.sql @@ -0,0 +1,53 @@ +DROP TABLE IF EXISTS followers CASCADE; +DROP TABLE IF EXISTS follows CASCADE; +DROP TABLE IF EXISTS tweets CASCADE; +DROP TABLE IF EXISTS added_tweets CASCADE; +DROP TABLE IF EXISTS user_profiles CASCADE; + +CREATE TABLE user_profiles ( + uid int NOT NULL, + name varchar(255) DEFAULT NULL, + email varchar(255) DEFAULT NULL, + partitionid int DEFAULT NULL, + partitionid2 smallint DEFAULT NULL, + followers int DEFAULT NULL, + PRIMARY KEY (uid) +); +CREATE INDEX idx_user_followers ON user_profiles (followers); +CREATE INDEX idx_user_partition ON user_profiles (partitionid); + +CREATE TABLE followers ( + f1 int NOT NULL, + f2 int NOT NULL, + FOREIGN KEY (f1) REFERENCES user_profiles (uid) ON DELETE CASCADE, + FOREIGN KEY (f2) REFERENCES user_profiles (uid) ON DELETE CASCADE, + PRIMARY KEY (f1, f2) +); + +CREATE TABLE follows ( + f1 int NOT NULL, + f2 int NOT NULL, + FOREIGN KEY (f1) REFERENCES user_profiles (uid) ON DELETE CASCADE, + FOREIGN KEY (f2) REFERENCES user_profiles (uid) ON DELETE CASCADE, + PRIMARY KEY (f1, f2) +); + +CREATE TABLE tweets ( + id bigint NOT NULL, + uid int NOT NULL, + text char(140) NOT NULL, + createdate timestamp DEFAULT NULL, + FOREIGN KEY (uid) REFERENCES user_profiles (uid) ON DELETE CASCADE, + PRIMARY KEY (id) +); +CREATE INDEX idx_tweets_uid ON tweets (uid); + +CREATE TABLE added_tweets ( + id serial, + uid int NOT NULL, + text char(140) NOT NULL, + createdate timestamp DEFAULT NULL, + FOREIGN KEY (uid) REFERENCES user_profiles (uid) ON DELETE CASCADE, + PRIMARY KEY (id) +); +CREATE INDEX idx_added_tweets_uid ON added_tweets (uid); diff --git a/src/main/resources/benchmarks/voter/ddl-yugabyte.sql b/src/main/resources/benchmarks/voter/ddl-yugabyte.sql new file mode 100644 index 000000000..30afb7418 --- /dev/null +++ b/src/main/resources/benchmarks/voter/ddl-yugabyte.sql @@ -0,0 +1,37 @@ +DROP VIEW IF EXISTS v_votes_by_phone_number CASCADE; +DROP VIEW IF EXISTS v_votes_by_contestant_number_state CASCADE; +DROP TABLE IF EXISTS votes CASCADE; +DROP TABLE IF EXISTS area_code_state CASCADE; +DROP TABLE IF EXISTS contestants CASCADE; + +CREATE TABLE contestants ( + contestant_number integer NOT NULL, + contestant_name varchar(50) NOT NULL, + PRIMARY KEY (contestant_number) +); + +CREATE TABLE area_code_state ( + area_code smallint NOT NULL, + state varchar(2) NOT NULL, + PRIMARY KEY (area_code) +); + +CREATE TABLE votes ( + vote_id bigint NOT NULL, + phone_number bigint NOT NULL, + state varchar(2) NOT NULL, + contestant_number integer NOT NULL, + created timestamp NOT NULL, + FOREIGN KEY (contestant_number) REFERENCES contestants (contestant_number) ON DELETE CASCADE +); +CREATE INDEX idx_votes_phone_number ON votes (phone_number); + +CREATE VIEW v_votes_by_phone_number (phone_number, num_votes) AS +SELECT phone_number, COUNT(*) +FROM votes +GROUP BY phone_number; + +CREATE VIEW v_votes_by_contestant_number_state (contestant_number, state, num_votes) AS +SELECT contestant_number, state, COUNT(*) +FROM votes +GROUP BY contestant_number, state; \ No newline at end of file diff --git a/src/main/resources/benchmarks/wikipedia/ddl-yugabyte.sql b/src/main/resources/benchmarks/wikipedia/ddl-yugabyte.sql new file mode 100644 index 000000000..9780c3541 --- /dev/null +++ b/src/main/resources/benchmarks/wikipedia/ddl-yugabyte.sql @@ -0,0 +1,204 @@ +DROP TABLE IF EXISTS ipblocks CASCADE; +DROP TABLE IF EXISTS logging CASCADE; +DROP TABLE IF EXISTS recentchanges CASCADE; +DROP TABLE IF EXISTS revision CASCADE; +DROP TABLE IF EXISTS page_restrictions CASCADE; +DROP TABLE IF EXISTS page CASCADE; +DROP TABLE IF EXISTS text CASCADE; +DROP TABLE IF EXISTS watchlist CASCADE; +DROP TABLE IF EXISTS user_groups CASCADE; +DROP TABLE IF EXISTS useracct CASCADE; + +CREATE TABLE useracct ( + user_id serial, + user_name varchar(255) NOT NULL DEFAULT '', + user_real_name varchar(255) NOT NULL DEFAULT '', + user_password varchar(255) NOT NULL, + user_newpassword varchar(255) NOT NULL, + user_newpass_time varchar(14) DEFAULT NULL, + user_email varchar(255) NOT NULL, + user_options varchar(255) NOT NULL, + user_touched varchar(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + user_token varchar(32) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + user_email_authenticated varchar(14) DEFAULT NULL, + user_email_token varchar(32) DEFAULT NULL, + user_email_token_expires varchar(14) DEFAULT NULL, + user_registration varchar(14) DEFAULT NULL, + user_editcount int DEFAULT NULL, + PRIMARY KEY (user_id), + UNIQUE (user_name) +); +CREATE INDEX idx_user_email_token ON useracct (user_email_token); + +CREATE TABLE user_groups ( + ug_user int NOT NULL DEFAULT '0', + ug_group varchar(16) NOT NULL DEFAULT '', + FOREIGN KEY (ug_user) REFERENCES useracct (user_id) ON DELETE CASCADE, + UNIQUE (ug_user, ug_group) +); +CREATE INDEX idx_ug_group ON user_groups (ug_group); + + +CREATE TABLE ipblocks ( + ipb_id serial, + ipb_address varchar NOT NULL, + ipb_user int NOT NULL DEFAULT '0', + ipb_by int NOT NULL DEFAULT '0', + ipb_by_text varchar NOT NULL DEFAULT '', + ipb_reason varchar NOT NULL, + ipb_timestamp varchar(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + ipb_auto smallint NOT NULL DEFAULT '0', + ipb_anon_only smallint NOT NULL DEFAULT '0', + ipb_create_account smallint NOT NULL DEFAULT '1', + ipb_enable_autoblock smallint NOT NULL DEFAULT '1', + ipb_expiry varchar(14) NOT NULL DEFAULT '', + ipb_range_start varchar NOT NULL, + ipb_range_end varchar NOT NULL, + ipb_deleted smallint NOT NULL DEFAULT '0', + ipb_block_email smallint NOT NULL DEFAULT '0', + ipb_allow_usertalk smallint NOT NULL DEFAULT '0', + PRIMARY KEY (ipb_id), + FOREIGN KEY (ipb_user) REFERENCES useracct (user_id) ON DELETE CASCADE, + FOREIGN KEY (ipb_by) REFERENCES useracct (user_id) ON DELETE CASCADE, + UNIQUE (ipb_address, ipb_user, ipb_auto, ipb_anon_only) +); +CREATE INDEX idx_ipb_user ON ipblocks (ipb_user); +CREATE INDEX idx_ipb_range ON ipblocks (ipb_range_start, ipb_range_end); +CREATE INDEX idx_ipb_timestamp ON ipblocks (ipb_timestamp); +CREATE INDEX idx_ipb_expiry ON ipblocks (ipb_expiry); + +CREATE TABLE logging ( + log_id serial, + log_type varchar(32) NOT NULL, + log_action varchar(32) NOT NULL, + log_timestamp varchar(14) NOT NULL DEFAULT '19700101000000', + log_user int NOT NULL DEFAULT '0', + log_namespace int NOT NULL DEFAULT '0', + log_title varchar(255) NOT NULL DEFAULT '', + log_comment varchar(255) NOT NULL DEFAULT '', + log_params varchar(255) NOT NULL, + log_deleted smallint NOT NULL DEFAULT '0', + log_user_text varchar(255) NOT NULL DEFAULT '', + log_page int DEFAULT NULL, + FOREIGN KEY (log_user) REFERENCES useracct (user_id) ON DELETE CASCADE, + PRIMARY KEY (log_id) +); +CREATE INDEX idx_log_type_time ON logging (log_type, log_timestamp); +CREATE INDEX idx_log_user_time ON logging (log_user, log_timestamp); +CREATE INDEX idx_log_page_time ON logging (log_namespace, log_title, log_timestamp); +CREATE INDEX idx_log_times ON logging (log_timestamp); +CREATE INDEX idx_log_user_type_time ON logging (log_user, log_type, log_timestamp); +CREATE INDEX idx_log_page_id_time ON logging (log_page, log_timestamp); + +CREATE TABLE page ( + page_id serial, + page_namespace int NOT NULL, + page_title varchar NOT NULL, + page_restrictions varchar(255) NOT NULL, + page_counter bigint NOT NULL DEFAULT '0', + page_is_redirect smallint NOT NULL DEFAULT '0', + page_is_new smallint NOT NULL DEFAULT '0', + page_random double precision NOT NULL, + page_touched varchar(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + page_latest int NOT NULL, + page_len int NOT NULL, + PRIMARY KEY (page_id), + UNIQUE (page_namespace, page_title) +); +CREATE INDEX idx_page_random ON page (page_random); +CREATE INDEX idx_page_len ON page (page_len); + +CREATE TABLE page_restrictions ( + pr_id int NOT NULL, + pr_page int NOT NULL, + pr_type varchar(60) NOT NULL, + pr_level varchar(60) NOT NULL, + pr_cascade smallint NOT NULL, + pr_user int DEFAULT NULL, + pr_expiry varchar(14) DEFAULT NULL, + PRIMARY KEY (pr_id), + FOREIGN KEY (pr_page) REFERENCES page (page_id) ON DELETE CASCADE, + UNIQUE (pr_page, pr_type) +); +CREATE INDEX idx_pr_typelevel ON page_restrictions (pr_type, pr_level); +CREATE INDEX idx_pr_level ON page_restrictions (pr_level); +CREATE INDEX idx_pr_cascade ON page_restrictions (pr_cascade); + +CREATE TABLE recentchanges ( + rc_id serial, + rc_timestamp varchar(14) NOT NULL DEFAULT '', + rc_cur_time varchar(14) NOT NULL DEFAULT '', + rc_user int NOT NULL DEFAULT '0', + rc_user_text varchar(255) NOT NULL, + rc_namespace int NOT NULL DEFAULT '0', + rc_title varchar(255) NOT NULL DEFAULT '', + rc_comment varchar(255) NOT NULL DEFAULT '', + rc_minor smallint NOT NULL DEFAULT '0', + rc_bot smallint NOT NULL DEFAULT '0', + rc_new smallint NOT NULL DEFAULT '0', + rc_cur_id int NOT NULL DEFAULT '0', + rc_this_oldid int NOT NULL DEFAULT '0', + rc_last_oldid int NOT NULL DEFAULT '0', + rc_type smallint NOT NULL DEFAULT '0', + rc_moved_to_ns smallint NOT NULL DEFAULT '0', + rc_moved_to_title varchar(255) NOT NULL DEFAULT '', + rc_patrolled smallint NOT NULL DEFAULT '0', + rc_ip varchar(40) NOT NULL DEFAULT '', + rc_old_len int DEFAULT NULL, + rc_new_len int DEFAULT NULL, + rc_deleted smallint NOT NULL DEFAULT '0', + rc_logid int NOT NULL DEFAULT '0', + rc_log_type varchar(255) DEFAULT NULL, + rc_log_action varchar(255) DEFAULT NULL, + rc_params varchar(255), + FOREIGN KEY (rc_user) REFERENCES useracct (user_id) ON DELETE CASCADE, + FOREIGN KEY (rc_cur_id) REFERENCES page (page_id) ON DELETE CASCADE, + PRIMARY KEY (rc_id) +); +CREATE INDEX idx_rc_timestamp ON recentchanges (rc_timestamp); +CREATE INDEX idx_rc_namespace_title ON recentchanges (rc_namespace, rc_title); +CREATE INDEX idx_rc_cur_id ON recentchanges (rc_cur_id); +CREATE INDEX idx_new_name_timestamp ON recentchanges (rc_new, rc_namespace, rc_timestamp); +CREATE INDEX idx_rc_ip ON recentchanges (rc_ip); +CREATE INDEX idx_rc_ns_usertext ON recentchanges (rc_namespace, rc_user_text); +CREATE INDEX idx_rc_user_text ON recentchanges (rc_user_text, rc_timestamp); + +CREATE TABLE revision ( + rev_id serial, + rev_page int NOT NULL, + rev_text_id int NOT NULL, + rev_comment text NOT NULL, + rev_user int NOT NULL DEFAULT '0', + rev_user_text varchar(255) NOT NULL DEFAULT '', + rev_timestamp varchar(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + rev_minor_edit smallint NOT NULL DEFAULT '0', + rev_deleted smallint NOT NULL DEFAULT '0', + rev_len int DEFAULT NULL, + rev_parent_id int DEFAULT NULL, + PRIMARY KEY (rev_id), + UNIQUE (rev_page, rev_id), + FOREIGN KEY (rev_user) REFERENCES useracct (user_id) ON DELETE CASCADE, + FOREIGN KEY (rev_page) REFERENCES page (page_id) ON DELETE CASCADE +); +CREATE INDEX idx_rev_timestamp ON revision (rev_timestamp); +CREATE INDEX idx_page_timestamp ON revision (rev_page, rev_timestamp); +CREATE INDEX idx_user_timestamp ON revision (rev_user, rev_timestamp); +CREATE INDEX idx_usertext_timestamp ON revision (rev_user_text, rev_timestamp); + +CREATE TABLE text ( + old_id serial, + old_text text NOT NULL, + old_flags varchar(255) NOT NULL, + old_page int DEFAULT NULL, + PRIMARY KEY (old_id) +); + +CREATE TABLE watchlist ( + wl_user int NOT NULL, + wl_namespace int NOT NULL DEFAULT '0', + wl_title varchar(255) NOT NULL DEFAULT '', + wl_notificationtimestamp varchar(14) DEFAULT NULL, + FOREIGN KEY (wl_user) REFERENCES useracct (user_id) ON DELETE CASCADE, + UNIQUE (wl_user, wl_namespace, wl_title) +); +CREATE INDEX idx_wl_namespace_title ON watchlist (wl_namespace, wl_title); \ No newline at end of file diff --git a/src/main/resources/benchmarks/ycsb/ddl-yugabyte.sql b/src/main/resources/benchmarks/ycsb/ddl-yugabyte.sql new file mode 100644 index 000000000..9b6e989db --- /dev/null +++ b/src/main/resources/benchmarks/ycsb/ddl-yugabyte.sql @@ -0,0 +1,14 @@ +DROP TABLE IF EXISTS usertable; +CREATE TABLE usertable ( + ycsb_key int PRIMARY KEY, + field1 text, + field2 text, + field3 text, + field4 text, + field5 text, + field6 text, + field7 text, + field8 text, + field9 text, + field10 text +);