57 final int fragment_size = 10;
58 final String csvTableName =
"import_test_mixed_varlen";
59 final String geoTableName =
"geospatial";
60 Exception exceptions[] =
new Exception[num_threads];
62 final CyclicBarrier barrier =
new CyclicBarrier(num_threads,
new Runnable() {
66 MapdTestClient.getClient(
"localhost", 6274, db, dbaUser, dbaPassword);
67 dba.runSql(
"CREATE TABLE " + csvTableName
68 +
"(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 = "
69 + fragment_size +
")");
71 dba.runSql(
"CREATE TABLE " + geoTableName
72 +
"( trip INT, omnisci_geo MULTIPOLYGON ) WITH(FRAGMENT_SIZE = "
73 + fragment_size +
")");
75 }
catch (Exception e) {
76 logger.error(
"[" + Thread.currentThread().getId() +
"]"
77 +
" Caught Exception: " + e.getMessage(),
84 ArrayList<Thread> threads =
new ArrayList<>();
85 for (
int i = 0; i < num_threads; i++) {
86 logger.info(
"Starting " + i);
87 final int threadId = i;
89 Thread t =
new Thread(
new Runnable() {
92 long tid = Thread.currentThread().getId();
93 String logPrefix =
"[" + tid +
"]";
96 TCopyParams copy_params =
new TCopyParams();
97 copy_params.has_header = TImportHeaderRow.NO_HEADER;
98 copy_params.delimiter =
",";
99 copy_params.null_str =
"\\N";
100 copy_params.quoted =
true;
101 copy_params.quote =
"\"";
102 copy_params.escape =
"\"";
103 copy_params.line_delim =
"\n";
104 copy_params.array_delim =
",";
105 copy_params.array_begin =
"{";
106 copy_params.array_end =
"}";
107 copy_params.threads = 0;
109 TCopyParams geo_copy_params =
new TCopyParams();
110 geo_copy_params.delimiter =
",";
111 geo_copy_params.null_str =
"\\N";
112 geo_copy_params.quoted =
true;
113 geo_copy_params.quote =
"\"";
114 geo_copy_params.escape =
"\"";
115 geo_copy_params.line_delim =
"\n";
116 geo_copy_params.array_delim =
",";
117 geo_copy_params.array_begin =
"{";
118 geo_copy_params.array_end =
"}";
119 geo_copy_params.threads = 0;
124 MapdTestClient user =
125 MapdTestClient.getClient(
"localhost", 6274, db, dbUser, dbPassword);
128 logger.info(logPrefix +
" IMPORT TABLE");
132 sql =
"DELETE FROM " + csvTableName +
" WHERE fatx2 IS NULL;";
133 logger.info(logPrefix +
" " + sql);
136 sql =
"SELECT COUNT(*) FROM " + csvTableName +
";";
137 logger.info(logPrefix +
" " + sql);
142 sql =
"ALTER TABLE " + csvTableName +
" DROP COLUMN faii;";
143 logger.info(logPrefix +
" " + sql);
149 sql =
"SELECT * FROM " + geoTableName +
";";
150 logger.info(logPrefix +
" VALIDATE " + sql);
151 user.sqlValidate(sql);
154 logger.info(logPrefix +
" IMPORT GEO TABLE");
155 user.import_geo_table(geoTableName,
158 new java.util.ArrayList<TColumnType>(),
159 new TCreateParams());
162 sql =
"SELECT * FROM " + geoTableName +
" LIMIT 2;";
163 logger.info(logPrefix +
" " + sql);
166 sql =
"SELECT * FROM " + csvTableName +
";";
167 logger.info(logPrefix +
" VALIDATE " + sql);
168 user.sqlValidate(sql);
170 for (
int i = 0; i < 5; i++) {
171 sql =
"INSERT INTO " + geoTableName +
" VALUES (" + i
172 +
", 'MULTIPOLYGON(((0 0, 1 1, 2 2)))');";
173 logger.info(logPrefix +
" " + sql);
177 sql =
"TRUNCATE TABLE " + csvTableName +
";";
178 logger.info(logPrefix +
" " + sql);
181 sql =
"SELECT COUNT(*) FROM " + csvTableName +
";";
182 logger.info(logPrefix +
" VALIDATE " + sql);
183 user.sqlValidate(sql);
187 sql =
"DROP TABLE " + geoTableName +
";";
188 logger.info(logPrefix +
" " + sql);
191 }
catch (Exception e) {
192 logger.error(logPrefix +
" Caught Exception: " + e.getMessage(), e);
193 exceptions[threadId] = e;
201 for (Thread t : threads) {
206 MapdTestClient.getClient(
"localhost", 6274, db, dbaUser, dbaPassword);
207 dba.runSql(
"DROP TABLE " + csvTableName +
";");
209 for (Exception e : exceptions) {
211 logger.error(
"Exception: " + e.getMessage(), e);