Tajo Change Log

Release 0.2.0 - unreleased

  NEW FEATURES

    TAJO-273: NotEval incurs NPE with boolean column. (hyunsik)

    TAJO-267: Implement equals() and deepEquals() functions at LogicalNode. 
    (jihoon)

    TAJO-260: Add between predicate. (hyunsik)

    TAJO-208: Implement char_length(string) function. (hyunsik)

    TAJO-99: Design the interface of join enumeration algorithm. (hyunsik)

    TAJO-179: Support MySQL CatalogStore. (jinho)

    TAJO-147: Implement trim(text), ltrim(text), and rtrim(text) function.
    (hyunsik)

    TAJO-148: Implement UPPER(text), LOWER(text) function. (hyunsik)

    TAJO-220: Implement catalog dump feature. (hyunsik)

    TAJO-216: Improve FilterPushDownRule and Implement physical operators 
    for outer join. (camelia_c via hyunsik)

    TAJO-211: Implement regexp_replace function. (hyunsik)

    TAJO-212: Implement type cast expresion. (hyunsik)

    TAJO-206: Implement String concatenation operator (||). (hyunsik)

    TAJO-213: NULL characters in meta of csv table should be supported.
    (jinho)    

    TAJO-185: Implement split_part function. (hyunsik)

    TAJO-193: Add string pattern matching operators. (hyunsik)

    TAJO-101: HiveQL converter. (jaehwa)

    TAJO-144: Implement INSERT OVERWRITE clause. (hyunsik)

    TAJO-139: TAJO-139: In predicate support. (hyunsik)

    TAJO-134: Support for compression/decompression of CSVFile. (jinho)

    TAJO-59: Implement Char Datum Type. (jihoon)
   
    TAJO-96: Design and implement rewrite rule interface and the rewrite rule 
    engine. (hyunsik)

    TAJO-19: CREATE TABLE without external data should be supported. (jinho)

    TAJO-57: Recognize Parser and Catalog Standard SQL data types. (hyunsik)

    TAJO-33: Implement a basic query progress indicator. (hyunsik)

  IMPROVEMENTS

    TAJO-270: Boolean datum compatible to apache hive. (jinho)

    TAJO-261: Rearrange default port numbers and config names. (hyunsik)

    TAJO-236: Implement LogicalPlanVerifier to check if a logical plan is 
    valid. (hyunsik)

    TAJO-254: Refactor package names and class names to have proper names.
    (add a missed changelog)

    TAJO-255: Cleanup exceptions of engine. (hyunsik)

    TAJO-253: Clean up tajo-default.xml in test resource. (hyunsik)

    TAJO-239: Improving web UI. (Keuntae Park via hyunsik)

    TAJO-232: Rename join operators and add other join operators to
    PhysicalPlanner. (hyunsik)

    TAJO-229: Implement JoinGraph to represent a graph of relation joins.
    (hyunsik)

    TAJO-223: Maximize disk read bandwidth utilization of StorageManagerV2 by
    moving Tuple creation role to next(). (Keuntae Park via hyunsik)

    TAJO-199: All relations in catalog must have data volume size. (hyunsik)

    TAJO-224: Rearrange DataType enumeration and Refactor type systems.
    (hyunsik)

    TAJO-214: System should inquire finished query history after execution 
    in web. (SeongHwa Ahn via hyunsik)

    TAJO-145: count(distinct column) should be supported. (hyunsik)

    TAJO-197: Implement Enforcer that forces physical planner to choose
    specified algorithms. (hyunsik)

    TAJO-194: LogicalNode should have an identifier to distinguish each
    logical node instance. (hyunsik)

    TAJO-183: Creating too many TableMetaProto objects might lead a potential 
    memory leak. (jihoon)

    TAJO-184: Refactor GlobalPlanner and global plan data structure. (hyunsik)

    TAJO-119: Refactor and Improve Datum. (jinho)

    TAJO-178: Implements StorageManager for scanning asynchronously. 
    (hyoungjunkim via hyunsik)

    TAJO-167: Implement GeneralSetFunctionExpr to represent all SQL standard
    set functions. (hyunsik)

    TAJO-149: Eliminate QueryConf and its file write. (hyunsik)

    TAJO-143: Implement hash semi-join operator. (hyunsik)

    TAJO-142: Implement hash anti-join operator. (hyunsik)

    TAJO-94: Remove duplicate proto files. (hyunsik)

    TAJO-141: Set on demand as the default cluster mode. (hyunsik)

    TAJO-136: Broadcast join should be enabled. (hyunsik)

    TAJO-127: Implement Tajo Resource Manager. (hyoungjunkim via hyunsik)

    TAJO-84: Task scheduling with considering disk load balance. (jinho)

    TAJO-123: Clean up the logical plan's json format. (hyunsik)

    TAJO-129: Enable the constructor of NettyServerBase to take a service
    name. (hyunsik)

    TAJO-91: Launch QueryMaster on NodeManager per query. 
    (hyoungjunkim via hyunsik)

    TAJO-100: Port the parse error handling to the new parser. (jinho)

    TAJO-121: Add LogicalPlanVisitor and Refactor LogicalOptimizer to use the
    visitor. (hyunsik)

    TAJO-118: Refactor and Improve text file Scanner. (jinho)

    TAJO-95: Eliminate the lazy copy approach from the classes wrapping
    protobuf-generated classes. (hyunsik)

    TAJO-102: Add AlgebraVisitor and Refactor LogicalPlanner to use the visitor.
    (hyunsik)

    TAJO-87: Integration of tajo algebra module and SQL parser. (hyunsik)

    TAJO-70: Refactor GlobalEngine to handle DDL statements. (hyunsik)

    TAJO-86: Improved error messages in query analyzer. (jinho)

    TAJO-85: Add an method of create(DataType, byte[]) to DatumFactory. (jihoon)

    TAJO-79: Refactor and Improve TajoCli. (hyunsik)

    TAJO-77: Rename TabletProto as FragmentProto in CatalogProtos.proto. 
    (jihoon)

    TAJO-22: The package prefix should be org.apache.tajo. (DaeMyung Kang via 
    hyunsik)

    TAJO-75: Separate SQL.g into SQLParser.g and SQLLexer.g. (hyunsik)

    TAJO-74: Refactor parser rules of SQL.g. (hyunsik)

    TAJO-7: Enabling TajoCli to take multiple lines as one statement. (jinho)

    TAJO-72: Rename NQL.g to SQL.g. (hyunsik)

    TAJO-71: Case-insensitive parser. (hyunsik)

    TAJO-40: Adopt YarnClient to GlobalEngine. (jihoon)

    TAJO-69: Add .reviewboardrc file to the ignore lists of Rat and .gitignore. 
    (hyunsik)

    TAJO-66: Support compiling and running Tajo with Java7 (Tejas Patil via 
    hsaputra)

    TAJO-51: Parallel Container Launch of TaskRunnerLauncherImpl. (hyunsik)
    
    TAJO-39 Remove the unused package tajo.engine.plan.global and all files 
    inside the directory. (hsaputra)

    TAJO-37: Remove obsolete classes WorkerEventDispatcher, WorkerEvent and 
    WorkerEventType. (sunny.1324 via hyunsik)

    TAJO-50: Cleanup SubQuery. (hyunsik)

    TAJO-44: Adopt AMRMClient to RMContainerAllocator, RMCommunicator. (hyunsik)
    
    TAJO-42: Divide SubQuery into FSM and execution block parts. (hyunsik)

    TAJO-32: Cleanup TaskRunner. (hyunsik)

    TAJO-27: Modify the document links to point the wiki's ones. (hyunsik)
    
    TAJO-17: Improve the examples for jvm version and auxiliary service in 
    getting_started.apt. (hyunsik)

    TAJO-10: Modify git ignore to include Apache derby log file. (hsaputra)

    TAJO-12: Add information in README on how to subscribe to mailing 
    lists (mattmann, hyunsik)

    TAJO-11: Update file README to reflect Apache incubation. (hyunsik)

    TAJO-4: Update the project site. (hyunsik)

    TAJO-2: remove all @author tags and update license header. (hyunsik)

  BUG FIXES

    TAJO-281: 'mvn package -Pdist' generates duplicate Tajo jar files.
    (hyunsik)

    TAJO-277: Infinite loop occurs when a table is empty. (jinho)

    TAJO-273: NotEval incurs NPE with boolean column. (hyunsik)

    TAJO-272: boolean test does not work correctly. (hyunsik)

    TAJO-264: Remove hard-coded 'standby' mode. (jinho)

    TAJO-262: Integration test hang on jenkins. (jinho)

    TAJO-257: Unit tests occassionally fail. (hyunsik)

    TAJO-169: the default TAJO_WORKER_STANDBY_MODE in tajo-env.sh is wrong. 
    (hyunsik)

    TAJO-231: In StorageManger v2, TestCSVCompression incurs unexpected end of 
    stream occasionally. (hyunsik)

    TAJO-250: QueryMaster must send the query finish heartbeat. (hyunsik)

    TAJO-245: org.apache.tajo.algebra.FunctionExpr cannot be cast to 
    org.apache.tajo.algebra.ColumnReferenceExpr. (hyunsik)

    TAJO-243: The 'tajo_dump' does not include options of table. (jinho)

    TAJO-244: assignToNonLeafTasks causes NPE occurs occasionally. (hyunsik)

    TAJO-242: Enable omitted broadcast join feature after TAJO-184. (hyunsik)

    TAJO-240: Reformat HiveConverter source code to match adopted conventions 
    (jaehwa)   

    TAJO-241: Does not reconnect the meta store. (jinho)

    TAJO-226: Can't use group by column alias. (hyunsik)

    TAJO-203: Field delimiter does not work correctly. (jinho)

    TAJO-205: Repartitioner occasionally chooses a partition number as one.
    (hyunsik)

    TAJO-191: INSERT OVERWRITE INTO statement should follow the table meta in 
    catalog. (jinho)

    TAJO-198: The split function does not work properly. (jinho)

    TAJO-187: The exception 'Some targets cannot be evaluated' is caused in 
    nested joins. (hyunsik)

    TAJO-46: The "having" clause does not work properly. (hyunsik)

    TAJO-186: Improve column resolving method. (hyunsik)

    TAJO-168: infinite loop occurs when QueryMaster is stopping. (jinho)

    TAJO-180: Better error messages for 
    StorageManager.listStatus$InvalidInputException. (hyunsik)

    TAJO-177: Call by reference bug in MergeJoinExec. (jihoon)

    TAJO-171: BitArray always returned false. (jinho)

    TAJO-172: TajoWorker allocate wrong container slots.(jinho)

    TAJO-174: SQL error handler sometimes occurred NPE. (jinho)

    TAJO-170: mvn compile error when building tar file. (jaehwa)

    TAJO-154: Query calculates wrong progress in multiple step queries.
    (hyunsik)

    TAJO-152: The tajo local directory path is mismatched in PullServer. 
    (jihoon)

    TAJO-80: Remove codes of legacy data paths. (jihoon)
 
    TAJO-159: QueryMaster cannot connect the remote CatalogServer. (hyunsik)

    TAJO-158: Can't allocate worker when single SubQuery requests more than
    cluster capacity. (hyoungjunkim via hyunsik)

    TAJO-157: The CSVScanner.isSplittable() function does not work properly.
    (jinho)

    TAJO-156: BufferUnderflowException occurs during processing the 
    intermediate file. (jinho)

    TAJO-151: Multiple union queries within a table subquery causes NPE.
    (hyunsik)

    TAJO-137: Unreleased resources and wrong allocation requests in
    TajoWorkerResourceManager. (hyoungjunkim via hyunsik)

    TAJO-130: Same queryConf file conflicts. (jinho)

    TAJO-82: NullPointerException occurs when Schema is converted as an array 
    of columns. (jihoon)

    TAJO-65: Invalid pom.xml configurations for source directories. 
    (Takuya Ueshin via hyunsik)

    TAJO-48: BufferUnderflowException occurs during the initialization of 
    RowFile. (jihoon)

    TAJO-58: Remove obsolete methods in GlobalPlanner. (hyunsik)

    TAJO-54: SubQuery::allocateContainers() may ask 0 containers. (hyunsik)

    TAJO-41: Storage handler name row in storage-default.xml must be rowfile. 
    (hsaputra)

    TAJO-47: RowFile has the duplicated initialization problem and unflipped 
    ByteBuffer problem. (jihoon)

    TAJO-38: Update class comment in TaskAttemptContext from Korean to English 
    (hsaputra)

    TAJO-15: The Integration test is getting hanged on Mac OS X. (hyunsik)

    TAJO-8: MapReduce's ShuffleHandler and Tajo's PullServerAuxService conflict
    each other. (jhkim)

    TAJO-13: Update the groupId property in the pom.xml to use ASF org instead
    of kr.ac.korea.dbserver (hsaputra)

    TAJO-1: RCFileWrapper always reads whole columns regardless of the target 
    schema. (jihoonson via hyunsik)

    TAJO-6: Rename tajo.engine.function.builtin.NewSumInt to SumInt. (rsumbaly)

    TAJO-21: CREATE EXTERNAL TABLE should support a file path. (JaeHwa Jung)

  TASKS

    TAJO-288: Correct NOTICE file and LICENSE.txt. (hyunsik)

    TAJO-271: Add MIT license to NOTICE.txt and LICENSE.txt for jquery and 
    jsPlumb. (hyunsik)

    TAJO-265: Update installation guide and other documentation for 0.2
    release. (hyunsik)

    TAJO-252: Add DISCLAIMER file. (hyunsik)

    TAJO-251: Rename the legacy name *.tql to *.sql. (hyunsik)
