Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
Minornyi patch 4.18.1.tar.gz | 2023-03-31 | 104.6 MB | |
Minornyi patch 4.18.1.zip | 2023-03-31 | 105.0 MB | |
README.md | 2023-03-31 | 16.5 kB | |
Totals: 3 Items | 209.6 MB | 0 |
-
Gradle
-
Версия Groovy переведена на 3.0.16
-
Dsl фичи
- models: для табличных моделей добавлены функция historyPointSourceName, которая возвращает как имя таблицы будет хранить в таблице инкрементов, свойство modelHistoryPoint, которое возвращает ссылку на общий инкрементальный менеджер к модели без привязки к таблице и метод clearModelHistoryPoints, который сбрасывает все инкрементальные точки модели в таблице инкрементов.
- models: для workflow в скрипте теперь можно обращаться к результатам выполнения скрипта с указанием имени объекта, для которого был зафиксирован результат, например "result('SCRIPT 1', 'group1:object1').count".
- main: при запуске с командой строки класса Getl теперь можно включить тихий режим с помощью опции "getl_verbose_mode=true". В таком режиме не будут выводиться сведения о версии Getl и загружаемых параметрах репозитория.
- test: юнит тесты теперь выполняются в тихом режиме.
- Добавлен оператор runGetlFile, с помощью которого можно выполнить скрипт на языке Getl из файла, который находится локально, в ресурсах проекта или репозитории. В скрипте файла автоматически будет использован базовый класс Getl, подключен автоматический импорт аннотации @Field для описания параметров скрипта, аннотации @SaveToRepository для обозначения методов генерации объектов репозитория и классов функций getl.utils.*.
- main: сделан рефакторинг работы с текстовыми файлами оператором textFile. Теперь вся запись в буфер идет не в память, а в кэшируемый файл, появилось свойство deleteOnEmpty, при включении которого по окончании файл будет удален, если буфер пустой.
- repository: в функцию loadRepository для repositoryStorageManager добавлен параметр softLoad, с помощью которого можно включить кэширование загрузки репозитория. При включении этого параметра вместо загрузки объектов репозитория в память будут загружены их имена, которые будут доступны при работе со списком объектов репозитория или поиске объекта по имени. При любом обращении к объекту он будет автоматически загружен в память. Используйте эту опцию, если при работе требуется видеть полный список объектов репозитория, но не требуется тратить время на загрузку их всех сразу.
- main: при старте процесса ему автоматически в scriptExtendedVars передаются переменные "#REPOSITORY" с абсолютным путем к репозиторию и "#TEMPDIR" с абсолютным путем к директории временных файлов, который использует JVM. Переменные можно использовать в параметрах скриптов запускаемого workflow.
- scripts: в скриптовый язык добавлены функции parseSQLDate, parseSQLTime и parseSQLTimestamp.
Dsl баги
- main: в базовом классе генератора объектов репозитория RepositorySave не корректно обрабатывалась последовательность сохранения созданных объектов, что могло привести к тому, что в репозитории сначала регистрировался объект, который ссылается на другой объект, который еще не был создан.
- main: в базовом классе генератора объектов репозитория RepositorySave очищались все объекты указанного типа генерируемых объектов, даже если для их имен была задана маска. Теперь если маска указана, перед созданием будут очищаться только те объекты, которые входят в маску.
- repository: можно было для объекта задать пустое имя группы, указав в имени групп две точки подряд.
- threads: если внутри выполняемого потока вызывался оператор stopApp, то выполнение приложения завершалось, как будто произошла ошибка, а не штатное прерывание его работы.
-
repository: переработан механизм блокировки объектов репозитория при обращении к ним для ускорения загрузки объектов при загрузке репозитория или дозагрузки в ходе обращения к объектам.
-
Getl фичи
- getl.utils.DateUtils: добавлены функции для форматирования java.sql типов даты и времени: FormatSQLDate, FormatSQLTime, FormatSQLTimestamp и FormatTimestampWithTz.
- getl.jdbc.HistoryPointManager: добавлены функции lastValueLong и lastValueTimestamp для получения значения как числа или даты-времени.
- getl.jdbc.VerticaDriver: добавлена поддержка создания local temporary view.
- getl.proc.FileCleaner: добавлено свойство ignoreFileRemoveError, в котором можно включить игнорирование неудачных попыток удаления файлов.
- getl.csv.CSVDriver: в CSVConnection и CSVDataset добавлено свойство blobPfefix, с помощью которого можно задать префикс перед HEX последовательностью байтов для блоб полей в файле, если выключен флаг blobAsPureHex. По умолчанию используется "0x".
- getl.data.Field: добавлена функция IsCapacityType, с помощью которой можно сравнить совместимость значения поля приёмника к полю источника.
- getl.jdbc.JDBCDriver: для функций создания и удаления схем, таблиц, представлений и счетчиков, а так же для функции копирования из таблицы в таблицу добавлена опция ddlOnly, при указании которой формируется SQL скрипт, но не выполняется сама операция. Скрипт сохраняется в свойстве lastSqlStatement у соединения, датасета или счетчика.
- getl.jdbc.JDBCConnection: добавлены функции форматирования значений с типом даты и времени в текст с учетом поддерживаемого формата соединения.
- getl.csv.CSVDriver: добавлена возможность читать файлы с нестандартным разделителем записей. Ранее такие файлы можно было только записывать.
- getl.vertica.VerticaTable: в опции пакетной загрузки файлов bulkLoadOpts добавлено свойство escapeChar, в котором можно задать символов экранирования специальных символов в текстах.
- getl.vertica.VerticaDriver: теперь в пакетной загрузке файлов можно загружать файлы штатным парсером без экранирования специальных символов с помощью символа экранирования. Если задать разделителями полей и записей служебные символы, которые нет в текстах, то возможно загружать значения текстовых полей с переводами строк без их потери. При формировании временных файлов для пакетной загрузки в Vertica теперь задается символ обрамления поля \u0005, разделитель записей \u0006 и разделитель полей \u0007. При указании reject файла, Vertica вернет записи в том же формате, однако он будет конвертирован в текстовый формат со штатными параметрами для анализа и читабельности.
- getl.data.Dataset: при импорте полей с другого датасета добавлено два параметра:
- "excludeTypes" позволяет перечислить список имен типов полей, который требуется исключить из импорта.
- "rules" позволяет описать трансформацию импортируемых полей в виде Closure или текста скрипта, которому делегируется импортируемый Field и есть полный доступ из кода к его полям. Если при обработке поля принято решение его не импортировать, то скрипт должен вернуть значение "IGNORE".
Getl баги
- getl.jdbc.JDBCDriver: при работе с timestamp полями могли не учитываться особенности некоторых РСУБД, которые не поддерживают наносекунды и работают только с миллисекундами.
- getl.jdbc.SQLScripter: при форматировании timestamp переменных у времени терялись наносекунды. Так же не учитывался формат преобразования timestamp полей с наносекундами, которые поддерживает используемые при выполнении РСУБД.
- getl.csv.CSVDriver: добавлена проверка, что при вызове метода записи в CSV в него приходит map, а не null или empty.
- getl.utils.FileUtils: в функции SizeBytes возникала ошибка, если вместо количества байт приходил null. Теперь в таком случае функция возвращает null.
- getl.utils.StringUtils: в функции WithGroupSeparator возникала ошибка, если вместо числа приходил null. Теперь в таком случае функция возвращает null.
- getl.jdbc.TableDataset: в bulkLoadOpts возникала ошибка, если в sourceDataset или storyDataset устанавливался null.
- getl.proc.sub.FileListProcessing: при завершении работы не происходило отсоединение от источника, что могло привести к зависанию задачи при завершении её работы, если драйвер менеджера продолжал удерживать коннект.
- getl.csv.CSVDriver: не корректно обрабатывались свойства fieldDelimiter, rowDelimiter, quoteStr и nullAsValue, если в их значении использовались escaped последовательности. Теперь можно использовать escaped последовательности в этих свойствах (если символ не является escaped, то нужно перед ним удвоить символ "\").
- getl.data.Dataset: в функции FieldSoftType тип Numeric считался совместимым с Double, что могло привестик некорректной конвертации типов полей при импорте полей с источника в приёмник.
- getl.vertica.VerticaDriver: при пакетной загрузке файла с blob полями не корректно загружалась последовательность байт. Теперь для файлов требуется, чтобы бинарные поля были кодированы как "0xбайты" и в COPY для таких полей добавляется опция с указанием формата "hex".
- getl.data.FileDataset: у всех файловых датасетов не корректно работала функция fileNameWithExtension, если у соединения было включено свойство isGzFile.
- getl.jdbc.TableDataset: в функции CopyTableTo при копировании из таблицы в другую не учитывался параметр forUpdate. Теперь если он задан при вызове функции или указан в readOpts таблицы, он будет добавлен в SELECT при выполнении запроса копирования.
- getl.vertica.VerticaTable: при выполнении импорта полей с другой таблицы с помощью функции importFields для Number полей Oracle частично не корректно определялись типы для Vertica.
- getl.salesforce.SalesForceDriver: исправлена ошибка в методе bulkUnload, из-за которой батч, содержащий несколько результатов, обрабатывался неправильно, только последний результат попадал в обработку.
- getl.salesforce.SalesForceDriver: исправлена ошибка в методе eachRow, когда неверно обрабатывались поля в prepareCode.
- getl.salesforce.SalesForceDriver: в методы rows, eachRow, bulkUnload был добавлен параметр bulkJobId, используя который, можно забрать данные с уже завершенной Bulk Job.
- getl.salesforce.SalesForceDriver: исправлена ошибка в методе bulkUnload.
- getl.utils.DateUtils: при указании формата даты без дней в функции BuildDateFormatter происходила ошибка.
- getl.utils.Lexer: при разборе текста возникала ошибка, если после открывающей скобки сразу стояла запятая.
- getl.utils.Logs: возникала ошибка, если из юнит теста шло прямое обращение к логу без явного вызова его инициализации.