64 final int fragment_size = 10;
65 Exception exceptions[] =
new Exception[num_threads];
67 final CyclicBarrier barrier =
new CyclicBarrier(num_threads,
new Runnable() {
70 HeavyDBTestClient dba = HeavyDBTestClient.getClient(
71 "localhost", 6274, db, dbaUser, dbaPassword);
73 +
"(pt GEOMETRY(POINT), ls GEOMETRY(LINESTRING), faii INTEGER[2], fadc DECIMAL(5, 2)[2], fatx TEXT[] ENCODING DICT(32), fatx2 TEXT[2] ENCODING DICT(32)) WITH(FRAGMENT_SIZE = "
74 + fragment_size +
")");
77 +
"( trip INT, mpoly MULTIPOLYGON ) WITH(FRAGMENT_SIZE = "
78 + fragment_size +
")");
80 }
catch (Exception e) {
81 logger.error(
"[" + Thread.currentThread().getId() +
"]"
82 +
" Caught Exception: " + e.getMessage(),
89 ArrayList<Thread> threads =
new ArrayList<>();
90 for (
int i = 0; i < num_threads; i++) {
91 logger.info(
"Starting " + i);
92 final int threadId = i;
94 Thread t =
new Thread(
new Runnable() {
97 long tid = Thread.currentThread().getId();
98 String logPrefix =
"[" + tid +
"]";
101 TCopyParams copy_params =
new TCopyParams();
102 copy_params.has_header = TImportHeaderRow.NO_HEADER;
103 copy_params.delimiter =
",";
104 copy_params.null_str =
"\\N";
105 copy_params.quoted =
true;
106 copy_params.quote =
"\"";
107 copy_params.escape =
"\"";
108 copy_params.line_delim =
"\n";
109 copy_params.array_delim =
",";
110 copy_params.array_begin =
"{";
111 copy_params.array_end =
"}";
112 copy_params.threads = 0;
114 TCopyParams geo_copy_params =
new TCopyParams();
115 geo_copy_params.delimiter =
",";
116 geo_copy_params.null_str =
"\\N";
117 geo_copy_params.quoted =
true;
118 geo_copy_params.quote =
"\"";
119 geo_copy_params.escape =
"\"";
120 geo_copy_params.line_delim =
"\n";
121 geo_copy_params.array_delim =
",";
122 geo_copy_params.array_begin =
"{";
123 geo_copy_params.array_end =
"}";
124 geo_copy_params.threads = 0;
125 geo_copy_params.source_type = TSourceType.GEO_FILE;
130 HeavyDBTestClient user = HeavyDBTestClient.getClient(
131 "localhost", 6274, db, dbUser, dbPassword);
133 if (threadId % 2 == 0) {
134 logger.info(logPrefix +
" IMPORT TABLE");
140 sql =
"COPY " + csvTableName +
" FROM '" + csv_file_path
141 +
"' WITH (header = 'false');";
146 sql =
"DELETE FROM " + csvTableName +
" WHERE fatx2 IS NULL;";
149 sql =
"SELECT COUNT(*) FROM " + csvTableName +
";";
154 sql =
"ALTER TABLE " + csvTableName +
" DROP COLUMN faii;";
158 if (threadId % 2 == 1) {
165 logger.info(logPrefix +
" VALIDATE " + sql);
166 final String validateSql = sql;
171 final String alterSql =
"ALTER TABLE " +
geoTableName +
" SET max_rows = 10;";
178 logger.info(logPrefix +
" IMPORT GEO TABLE");
185 new java.util.ArrayList<TColumnType>(),
186 new TCreateParams()),
191 final String selectSql =
"SELECT * FROM " +
geoTableName +
" LIMIT 2;";
197 sql =
"SELECT * FROM " + csvTableName +
";";
198 logger.info(logPrefix +
" VALIDATE " + sql);
199 user.sqlValidate(sql);
201 sql =
"ALTER TABLE " + csvTableName +
" SET max_rollback_epochs = 0;";
204 sql =
"COPY (SELECT * FROM " + csvTableName +
") TO 'test_export.csv';";
207 for (
int i = 0; i < 5; i++) {
208 final String insertSql =
"INSERT INTO " +
geoTableName +
" VALUES (" + i
209 +
", 'MULTIPOLYGON(((0 0, 1 1, 2 2)))');";
216 sql =
"COPY (SELECT * FROM " + csvTableName +
") TO 'test_export.csv';";
219 sql =
"TRUNCATE TABLE " + csvTableName +
";";
222 sql =
"SELECT COUNT(*) FROM " + csvTableName +
";";
223 logger.info(logPrefix +
" VALIDATE " + sql);
224 user.sqlValidate(sql);
231 }
catch (Exception e) {
232 logger.error(logPrefix +
" Caught Exception: " + e.getMessage(), e);
233 exceptions[threadId] = e;
241 for (Thread t : threads) {
245 HeavyDBTestClient dba =
246 HeavyDBTestClient.getClient(
"localhost", 6274, db, dbaUser, dbaPassword);
247 dba.runSql(
"DROP TABLE " + csvTableName +
";");
249 for (Exception e : exceptions) {
251 logger.error(
"Exception: " + e.getMessage(), e);
void getTableDetails(HeavyDBTestClient user, String logPrefix)
void getTablesMetadata(HeavyDBTestClient user, String logPrefix)
void logAndRunSql(String sql, HeavyDBTestClient user, String logPrefix)
static final String geoTableName
void loadTableBinaryColumnar(HeavyDBTestClient user, String logPrefix)
static final String csvTableName
void loadTable(HeavyDBTestClient user, String logPrefix)
void loadTableBinaryColumnarPolys(HeavyDBTestClient user, String logPrefix)
void ignoreMissingTable(final VoidFunction function, final String tableName)