Commit Graph

742 Commits

Author SHA1 Message Date
bde362c3cd Modify insert operation's behavior (#1444)
Before changing default insert operation to streaming load, if the select result
of a insert stmt is empty, a label will still be returned to the user, and user
can use this label to check the insert load job's status.

After changing the insert operation, if the select result is empty, a exception
will be thrown to user client directly without any label.

This new usage pattern is not friendly to already existed users, which is forcing
them to change their way of using insert operation.

So I add a new FE config 'using_old_load_usage_pattern', default is false.
If set to true, a label will be returned to user even if the select result is empty.
2019-07-09 10:17:09 +08:00
dc64521607 Modify bugs in sample variance and variance confusion (#1439)
1. variance same as var_pop/variance_pop
2. stddev same as stddev_pop
2019-07-08 14:12:36 +08:00
44d89ddcba Resolve the problem of accidental pause in RoutineLoadJob (#1437)
The issue is following:
Request1:
  BE aborts the txn.
  Attachment of txn is set.
  Attachment of txn is set to null without lock of txn because the task has been aborted by FE.
Request2:
  BE aborts the txn again.
  Attachment of txn is set again.
Request1:
  The attachment is not null so the job wants to find the task and commit it.
  The job could not find the task so it is paused. (NullPointer Exception)

In this commit, The commit request will check if task exists instead of checking txn attachment
is not null.
2019-07-08 11:01:42 +08:00
4989f7bfe3 Fix spelling mistake in docs (#1435) 2019-07-07 11:55:51 +08:00
Ye
25e092f92a Fix broken image link in docs (#1436) 2019-07-07 10:51:31 +08:00
e2246e7181 Fix bug that publish task missing dbId parameter (#1426)
Without dbId parameter, the backend report version can not be
updated when publish task report to FE, which may cause incorrect
order of report.

Related commit: 5c1b4f6
2019-07-04 15:42:39 +08:00
eeb6fa082b Revert "Cast the type of constant value in binary predicate to column type. (#1422)" (#1425)
This reverts commit 687f5a10868ce62d2d25d028152f84f3385b73f4.
2019-07-04 13:48:19 +08:00
687f5a1086 Cast the type of constant value in binary predicate to column type. (#1422)
If one child of a binary predicate is column, and the other is a constant expr,
set the compatible type to column's type.
eg:
k1(int):
... WHERE k1 = "123"  -->  k1 = cast("123" as int);

k2(varchar):
... WHERE 123 = k2 --> cast(123 as varchar) = k2

This optimization is for the case that some users may use a int column to save date, eg: 20190703,
but query with predicate: col = "20190703".

If not casting "20190703" to int, query optimizer can not do partition prune correctly.
2019-07-03 21:49:30 +08:00
4ff17c1fc3 Forbid adding rollup with REPLACE value but without all key columns. (#1421)
When a rollup table contains value columns of REPLACE aggregation type,
all key columns of base table should be included in this rollup.
Without all key columns, the order of rows is undefined.

For example, table schema k1,k2,k3,v1(REPLACE)

1,2,3,A
1,2,4,B
1,2,5,C

A rollup with column(k1,k2,v1):

1,2,A
1,2,B
1,2,C

No matter A or B or C be the last winner, it is meanless to user.

Also fix a bug that set password for current user on non-master FE
will throw NullPointerException.
2019-07-03 09:17:39 +08:00
d9f6829f4f Fix the deadlock of database and loadjob (#1419)
This commit change the idToTable to concurrent hashmap in database. It don't need to lock the database before getTable.
The database will be locked in GlobalTxnManager. The load job will be locked after that.
So the lock sequence is: database, load manager, load job.
2019-07-02 16:31:01 +08:00
7eab12a40e Support reading Parquet file when loading data (#1173) 2019-07-01 18:39:27 +08:00
b0af97d8aa Change error msg of mini load when PUBLISH_TIMEOUT (#1415) 2019-07-01 16:05:49 +08:00
8db97998ba Collect all documents to Doris code base (#1414) 2019-07-01 09:23:13 +08:00
9f743e3343 Use load job v2 in default (#1404) 2019-06-29 11:20:57 +08:00
6b83440b59 Get table name from DataSourceInfo instead of DataDesc (#1405) 2019-06-29 11:20:12 +08:00
8a10bf0f89 Fix binary plain page relocate bug (#1410) 2019-06-29 11:19:43 +08:00
1ff1722d93 Fix the core in dpp sink by sum of int128 (#1412) 2019-06-28 23:30:33 +08:00
5c1b4f641e Add report version for publish task (#1401) 2019-06-28 20:15:08 +08:00
4747bed306 Add rle page (#1379) 2019-06-27 22:25:19 +08:00
f8ec3d90d0 Add some field for extrernal service (#1403) 2019-06-27 22:10:33 +08:00
b17d1c5348 Fix a bug of v2 ColumnReader when reading not-null column (#1398) 2019-06-26 22:58:30 +08:00
7cb3c95330 Modify some method for external invoking and add extra sink (#1383) 2019-06-26 19:11:43 +08:00
756a680143 Add a website builder of Doris documentations (#1396)
The build script locates in docs/website.
Built with Sphinx using a theme provided by Read the Docs.
2019-06-26 19:10:39 +08:00
24a46a4552 Fix column nullable property in show create table stmt result (#1381)
Since the default nullable of a column changed to NOT NULL,
result of show table stmt should show the correct nullable property
of a column.
2019-06-26 18:55:27 +08:00
edeac1a339 Fix publish version task timeout (#1380)
Publish version task using wrong timeout config.
2019-06-26 12:27:25 +08:00
e046f7b05a Add plain page (#1341) 2019-06-26 00:50:50 +08:00
566e122c0d Optimize Export feature (#1378)
1. Add 'timeout' properties in Export stmt.
2. Add more infos in 'show export' stmt.
3. Add more logs for debug.
2019-06-26 00:20:53 +08:00
adba5249c4 Add dayofweek function (#1376) 2019-06-25 21:37:42 +08:00
e807064a88 Modify colocation creation logic (#1289) 2019-06-25 21:20:18 +08:00
51b2c1d5b2 Add some function doc (#1377) 2019-06-25 21:02:42 +08:00
22873d4f41 Add tablet version and descriptor table for query paln (#1373) 2019-06-25 20:57:15 +08:00
4f416b7e21 Fix the core of mini load (#1375)
A new struct named MiniLoadCtx is used to save is_streaming and ctx.
2019-06-25 20:54:58 +08:00
e30844a321 Add column reader writer for segment V2 (#1346) 2019-06-25 16:59:26 +08:00
322de9cd8e Add sql-function doc of cast_to_bigint (#1370) 2019-06-24 19:40:57 +08:00
12db342d8b Fix olap_header destruction error (#1368) 2019-06-24 18:58:18 +08:00
1422414e43 Add varchar column name to stream load error msg (#1366) 2019-06-24 14:52:59 +08:00
9cd0e09457 Fix bug that cast DateLiteral to other types (#1364) 2019-06-24 10:57:25 +08:00
f1717e44c8 Check get_header status returned (#1361)
When performing storage_medium_migration, the header may be already droped.
In this scenario, header returned will be null pointer.
Saving data to a null pointer will cause core dump.
2019-06-23 16:59:07 +08:00
9f7a335d02 Increase the timeout of publish version task when doing alter job (#1359)
The previous setting of timeout of a publish version task is mess.
I change it to a configurable time, default it 30 seconds.

And when the table is under rollup or schema change, I double this timeout.
This a kind of best-effort-optimization. Because with a short timeout,
a replica's publish version task is more likely to fail. And if quorum replicas
of a tablet fail to publish, the alter job will fail.

If the table is not under rollup or schema change, the failure of a replica's
publish version task has a minor effect because the replica can be repaired
by tablet repair process very soon. But the tablet repair process will not
repair rollup replicas.
2019-06-22 14:29:16 +08:00
f4df8ed137 Add Thrift definition for scanning data ability for computing system (#1343) 2019-06-22 14:15:13 +08:00
bc14855f25 Fix FE unit test's failure (#1360) 2019-06-21 22:23:36 +08:00
120e7e9119 Add more UT for FEFunctions (#1344) 2019-06-21 21:54:14 +08:00
6a17f07f97 Fix wrong query result with constant InPredicate (#1357) 2019-06-21 21:48:00 +08:00
3b95867603 Add Checkstyle for doris-fe (#1353) 2019-06-21 21:45:54 +08:00
7550b2f09b Convert mini load to streaming mini load (#1323)
* This commit has brought contribution to streaming mini load
The operation of streaming mini load is sames as previous. Also, user can check the load by frontend.
The difference is that streaming mini load finish the task before reply of REST API while the non-streaming only register a load.

* When updating doris
Updating fe or be firstly are also supported. After fe and be are updated, the streaming mini load will take effect.

* For multi mini load
The non-streaming mini load still has been used by multi mini load. The behavior of multi mini load has not been changed.

* Add a interface named isSupportedFunction
This function is used to protect the correctness of new feature which consists of be and fe during updaing.
2019-06-21 19:34:50 +08:00
687d57be66 Fix bug that query statistics in audit log are wrong (#1354) 2019-06-21 19:16:05 +08:00
ea71277094 Support mysql client 8.0 connection fe (#1349)
for example:
mysql --default-auth=mysql_native_password -P9030 -utest -ptest123456 -hA.B.C.D
2019-06-21 19:15:34 +08:00
4aaeb8789c Fix run-ut.sh failed (#1348) 2019-06-21 10:40:36 +08:00
3024a6675a Fix the broker hang when fe restart (#1338) 2019-06-20 19:44:17 +08:00
0d3c80dd8a Fix bug that function greast and least return wrong type (#1342) 2019-06-20 19:02:10 +08:00