Home / 4.18.0
Name Modified Size InfoDownloads / Week
Parent folder
Mazhornyi reliz 4.18.0.tar.gz 2023-02-21 104.6 MB
Mazhornyi reliz 4.18.0.zip 2023-02-21 105.0 MB
README.md 2023-02-21 11.8 kB
Totals: 3 Items   209.5 MB 0

Кратко о версии

В мажорной версии были существенные доработки работы с timestamp полями для поддержки наносекунд до 9 знаков, работе с blob полями JDBC источников и изменена архитектура работы моделей с менеджерами инкрементальных точек для облегчения описания правил инкрементального захвата для групп таблиц модели.

Dsl важные изменения!

  • models: в табличных моделях у таблиц было убрано свойство "historyPointName". Теперь вместо инкрементального менеджера в свойствах модели "incrementDatasetName" задается датасет, где будет храниться история инкрементальных точек. Для каждой таблицы модели, имеющей заполненное поле инкремента, автоматически создается локальный инкрементальный менеджер. Значение инкремента таблицы созданный менеджер хранит в "source" поле таблицы инкремента по маске "имя модели@имя таблицы модели". Если у Вас уже существуют сохраненные в таблице истории инкремента сохраненные значения под именами ранее заданных инкрементальных менеджеров репозитория, их требуется переименовать в таблице в формат указанной маски.

Dsl фичи

  • main: при запуске скрипта теперь в значениях его параметров можно использовать макропеременные "environment" (текущая среда работы) и "unittest" (текущий режим тестирования).
  • models: для работы с моделями добавлен метод "clearStoryDataset", который очищает датасет хранения истории работы с моделью.
  • models: для работы с табличными моделями добавлено свойство "incrementDatasetName", в котором можно задать датасет хранения истории инкрементальных точек при работе с моделями, метод "clearIncrementDataset" для очистки датасета истории инкрементальных точек и функция historyPointTable, с помощью которой можно получить ссылку на инкрементальный менеджер, обслуживающий таблицу модели.
  • models: в модель "MapTables" добавлена функция "findMapTable", которое позволяет найти нужную таблицу модели по её имени.
  • models: в модель "ReferenceFiles" добавлена функция "findReferenceFile", которое позволяет найти нужный файл модели по его имени.
  • models: в модель "ReferenceVerticaTables" добавлена функция "findReferenceTable", которое позволяет найти нужную таблицу модели по её имени.
  • models: в модель "SetOfTables" добавлена функция "findTable", которое позволяет найти нужную таблицу модели по её имени.
  • scripts: в скриптовый язык добавлена функция decode, которая позволяет эмулировать оператор CASE. Синтаксис функции: decode(value, условие1, значение1, условие2, значение2, ...).

Dsl баги

  • models: при поиске объекта в модели с помощью функции findModelObject не учитывалось, что имя могло передаваться не в нижнем регистре и ничего не находилось. Теперь эта функция проверяет и конвертит имя в правильный формат именования объектов репозитория и только потом ищет в модели указанный объект.

Getl важные изменения!

  • getl.jdbc.HistoryPointManager: размер поля "source" таблицы хранения значений инкрементов увеличен до 256 знаков. Требуется изменить размер этого поля в таблицах БД, чтобы не возникло ошибки проверки полей или переполнения поля при записи.

Getl фичи

  • getl.csv.CSVDriver: в соединения и датасет CSV добавлено свойство "blobAsPureHex", которое регулирует формат записи blob полей в файлы. По умолчанию свойство выключено и бинарные данные пишутся в формате "0xБайты". Если свойство включить, то запись будет идти как "Байты". Ранее все писалось как "Байты", что мешало пакетной загрузке в некоторые СУБД.
  • getl.csv.CSVDriver: теперь можно считывать и записывать в файлы значения timestamp полей в формате до 9 знаков наносекунд. Ранее поддерживалась работа только с миллисекундами до 3 знаков.
  • getl.data.Field: добавлено свойство "charOctetLength", в котором указан размер хранения поля в байтах. Для JDBC таблиц это свойство определяется автоматически при считывании списка полей с БД, для других источников свойство не используется.
  • getl.jdbc.JDBCDataset: добавлены свойства "codePage" для указания кодировки БД сервера и флага charLengthAsBytes, который указывает, как сервер по умолчанию интерпретирует длину текстовых полей при создании таблицы, как размер в символах или байтах.
  • getl.jdbc.JDBCDriver: теперь метод importFields при импорте полей из датасета другого JDBC источника при расчете длины текстовых полей учитывает кодировки источника и приёмника и размер хранения одного символа в байтах в полях, что позволяет увеличить размер текстовых полей в приёмнике, если размер в байтах поля источника превысит размеры заданной длины текстового поля в символах.
  • getl.jdbc.SQLScripter: теперь ри работе с timestamp переменными используется формат работы с ними до 6 знаков наносекунд. Ранее использовался формат миллисекунд до 3 знаков.
  • getl.utils.DateUtils: переработаны функции работы с Timestamp переменными, теперь они все поддерживают наносекунды до 9 знаков. По умолчанию функции продолжают работать с форматом, в котором выводятся миллисекунды до 3 знаков.

Getl баги

  • getl.mssql.MSSQLDriver: при работе в SQL с константами, которые содержат символы "\" и перевод строки, возникали ошибки. Теперь эти символы передаются корректно при выполнении SQL скриптов на сервер.
  • getl.mssql.MSSQLDriver: при создании и удалении таблиц с указанием "IF NOT EXISTS" и "IF EXISTS" возникала ошибка, так как MSSQL не поддерживает такой синтаксис при работе со схемами.
  • getl.oracle.OracleDriver: при чтении BLOB значений полей могла возникнуть ошибка, что класс "oracle.jdbc.OracleBlob" не найден. Теперь, если Oracle возвращает бинарные данные в таком формате, все читается корректно.
  • getl.excel.ExcelDriver: при попытке чтения файлов, у которых расширение было в верхнем регистре, возникала ошибка, что файл не поддерживается, хотя он был нужного формата. Теперь при определении формата файла игнорируется регистр расширения и файл корректно читается.
  • getl.jdbc.JDBCDriver: если код обработки считанной записи для функции eachRow по своим причинам решал прекратить дальнейшее чтение записей источника, то он устанавливал directive в Closure.DONE, однако чтение следующих записей продолжалось. Теперь при установке директивы в Closure, чтение данных из источника прекращается.
  • getl.utils.BoolUtils: если функции IsValue передавался массив, то он обрабатывался не корректно и функция не возвращала первое найденое не пустое boolean значение. Теперь функция проверяет массив и если встретившееся значение не null и может быть сконвертировано в boolean, оно возвращается функцией.
  • getl.utils.GenerationUtils: для чтения датасетов Json, Xml и Yaml используется функция GenerateEachRow, которая генерирует код чтения таких структур по заданным правилам. При генерации кода не корректно происходила остановка чтения записей датасета, если достигался заданный лимит чтения записей или вызываемый код обработки записи в EachRow через Closure возвращал признак остановки чтения, установив в directive значение Closure.DONE. Теперь при достижении лимита или установки флага Closure сразу происходит остановка чтения датасета без обработки его дальнейших записей.
Source: README.md, updated 2023-02-21