Skip to content

Commit 229bd51

Browse files
authored
Merge pull request #74 from nixel2007/develop
Release
2 parents 83ee504 + 86ce8b7 commit 229bd51

15 files changed

+58
-30
lines changed

.github/workflows/main.yml

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ jobs:
1515
matrix:
1616
os: [ubuntu-latest, windows-latest, macos-latest]
1717
oscript_version: ['1.8.3', 'stable']
18-
1918
steps:
2019
- uses: actions/checkout@v3
2120

@@ -30,30 +29,17 @@ jobs:
3029
opm install -l --dev
3130
3231
- name: Install docker
33-
if: matrix.os == 'macos-latest'
34-
run: |
35-
mkdir -p ~/.docker/machine/cache
36-
curl -Lo ~/.docker/machine/cache/boot2docker.iso https://github.com/boot2docker/boot2docker/releases/download/v19.03.12/boot2docker.iso
37-
brew install docker docker-machine
38-
docker-machine create --driver virtualbox default
39-
docker-machine env default
32+
if: matrix.os != 'windows-latest'
33+
uses: crazy-max/ghaction-setup-docker@v1
34+
timeout-minutes: 12
4035

4136
- name: Setup PostgreSQL
4237
if: matrix.os != 'windows-latest'
4338
run: |
44-
eval $(docker-machine env default) || true
45-
docker run --rm --name postgres -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 postgres
39+
docker run --rm --name postgres -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e POSTGRES_USERNAME=postgres -e POSTGRES_DB=postgres -e POSTGRES_HOST_AUTH_METHOD=password --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 postgres
4640
docker ps
4741
while [ "`docker inspect -f {{.State.Health.Status}} postgres`" != "healthy" ]; do docker ps && sleep 2; done
4842
docker ps
49-
50-
- name: Configure env vars on macos
51-
if: matrix.os == 'macos-latest'
52-
env:
53-
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
54-
run: |
55-
eval $(docker-machine env default)
56-
echo "::set-env name=POSTGRES_HOST::$(docker-machine ip)"
5743
5844
- name: Run tests
5945
env:

.github/workflows/qa.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,17 @@ jobs:
2424
opm install opm@1.0.2
2525
opm install -l --dev
2626
27+
- name: Install docker
28+
uses: crazy-max/ghaction-setup-docker@v1
29+
timeout-minutes: 12
30+
2731
- name: Setup PostgreSQL
2832
run: |
29-
docker run --rm --name postgres -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 postgres
33+
docker run --rm --name postgres -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e POSTGRES_USERNAME=postgres -e POSTGRES_DB=postgres -e POSTGRES_HOST_AUTH_METHOD=password --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 postgres
3034
docker ps
3135
while [ "`docker inspect -f {{.State.Health.Status}} postgres`" != "healthy" ]; do docker ps && sleep 2; done
3236
docker ps
33-
37+
3438
- name: Compute branch name
3539
uses: nelonoel/branch-name@v1.0.1
3640

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
steps:
2424
# Загрузка проекта
2525
- name: Актуализация
26-
uses: actions/checkout@v2
26+
uses: actions/checkout@v3
2727

2828
# Установка OneScript конкретной версии
2929
- name: Установка OneScript
@@ -41,7 +41,7 @@ jobs:
4141
run: opm build .
4242

4343
- name: Заливка артефактов
44-
uses: actions/upload-artifact@v2
44+
uses: actions/upload-artifact@v3
4545
with:
4646
name: package.zip
4747
path: ./${{ env.PACKAGE_MASK }}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,7 @@
391391
* Время
392392
* ДатаВремя
393393
* Ссылка
394+
* ДвоичныеДанные
394395
* `ТипСсылки` - Строка - Имя зарегистрированного в модели типа, в который преобразуется значение из колонки. Имеет смысл только в паре с параметром `Тип`, равным `Ссылка`. Допустимо указывать примитивные типы из перечисления `ТипыКолонок` и типы сущностей (например, `"ФизическоеЛицо"`)
395396

396397
<a id="annotation-secondary-table" />

packagedef

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//
55
// BSLLS:CodeOutOfRegion-off
66
Описание.Имя("entity")
7-
.Версия("2.3.4.0")
7+
.Версия("2.3.5.0")
88
.Автор("Nikita Gryzlov")
99
.АдресАвтора("nixel2007@gmail.com")
1010
.Описание("entity")
@@ -23,7 +23,7 @@
2323
.ЗависитОт("decorator", "1.5.1")
2424
.ЗависитОт("reflector", "0.6.1")
2525
.ЗависитОт("semaphore", "1.1.0")
26-
.ЗависитОт("sql", "1.1.1.2")
26+
.ЗависитОт("sql", "1.2.0.1")
2727
.ЗависитОт("strings", "0.5.0")
2828
.РазработкаЗависитОт("1bdd")
2929
.РазработкаЗависитОт("1testrunner")

src/Классы/КоннекторJSON.os

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,11 @@
210210
Для Каждого СтрокаДанныхТаблицы Из ДанныеТаблицы Цикл
211211
ЗначенияКолонок = Новый Соответствие;
212212
Для Каждого Колонка Из ОбъектМодели.Колонки() Цикл
213-
ЗначенияКолонок.Вставить(Колонка.ИмяКолонки, СтрокаДанныхТаблицы.Значение.Получить(Колонка.ИмяКолонки));
213+
Значение = СтрокаДанныхТаблицы.Значение.Получить(Колонка.ИмяКолонки);
214+
Если Колонка.ТипКолонки = ТипыКолонок.ДвоичныеДанные Тогда
215+
Значение = ПолучитьДвоичныеДанныеИзBase64Строки(Значение);
216+
КонецЕсли;
217+
ЗначенияКолонок.Вставить(Колонка.ИмяКолонки, Значение);
214218
КонецЦикла;
215219
НайденныеСтроки.Добавить(ЗначенияКолонок);
216220
КонецЦикла;

src/Классы/КоннекторPostgreSQL.os

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,11 @@
130130
ЭтоВставкаОбъекта = Истина;
131131
КонецЕсли;
132132

133-
ЭтоПустаяСсылка =
134-
ДанныеОКолонке.ТипКолонки = ТипыКолонок.Ссылка
133+
ЭтоПустаяСсылка = ДанныеОКолонке.ТипКолонки = ТипыКолонок.Ссылка
135134
И (ЗначениеПараметра = 0 Или ЗначениеПараметра = Неопределено);
136135

137136
ИменаКолонок = ИменаКолонок + Символы.Таб + ДанныеОКолонке.ИмяКолонки + "," + Символы.ПС;
137+
138138
ЗначенияКолонок = ЗначенияКолонок
139139
+ Символы.Таб
140140
+ ?(ЭтоПустаяСсылка, "null", "@" + ДанныеОКолонке.ИмяКолонки)
@@ -285,6 +285,7 @@
285285
Карта.Вставить(ТипыКолонок.Дата, "date");
286286
Карта.Вставить(ТипыКолонок.Время, "time");
287287
Карта.Вставить(ТипыКолонок.ДатаВремя, "timestamp");
288+
Карта.Вставить(ТипыКолонок.ДвоичныеДанные, "bytea");
288289

289290
Возврат Карта;
290291

src/Классы/КоннекторSQLite.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@
234234
Карта.Вставить(ТипыКолонок.Дата, "DATE");
235235
Карта.Вставить(ТипыКолонок.Время, "TIME");
236236
Карта.Вставить(ТипыКолонок.ДатаВремя, "DATETIME");
237+
Карта.Вставить(ТипыКолонок.ДвоичныеДанные, "BLOB");
237238

238239
Возврат Карта;
239240

src/Классы/ОбъектМодели.os

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@
7777
Иначе
7878
ЗначениеПоля = ОбъектМоделиСсылки.ПолучитьЗначениеИдентификатора(ЗначениеПоля);
7979
КонецЕсли;
80+
ИначеЕсли Колонка.ТипКолонки = ТипыКолонок.ДвоичныеДанные Тогда
81+
// Просто ничего не делаем, все работает само
8082
Иначе
8183
ЗначениеПоля = ПривестиЗначениеПоля(ЗначениеПоля, ИмяПоля);
8284
КонецЕсли;
@@ -360,12 +362,21 @@
360362
Карта.Вставить(ТипыКолонок.Дата, Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.Дата)));
361363
Карта.Вставить(ТипыКолонок.Время, Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.Время)));
362364
Карта.Вставить(ТипыКолонок.ДатаВремя, Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));
365+
Карта.Вставить(ТипыКолонок.ДвоичныеДанные, Новый ОписаниеТипов("ДвоичныеДанные"));
363366

364367
Возврат Карта;
365368

366369
КонецФункции
367370

368371
Функция ВыполнитьПриведениеЗначения(Колонка, Значение)
372+
// Если тип колонки и значение - двоичные данные, то приводить не нужно.
373+
// по крайней мере пока oscript не научится приводить тип двоичных данных
374+
// https://github.com/EvilBeaver/OneScript/issues/1327
375+
Если Колонка.ТипКолонки = ТипыКолонок.ДвоичныеДанные
376+
И ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
377+
Возврат Значение;
378+
КонецЕсли;
379+
369380
ОбработанноеЗначение = Значение;
370381

371382
КартаОписанийТипов = СоответствиеТиповМоделиОписанийТипов();

src/Модули/ТипыКолонок.os

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
Перем Время Экспорт;
77
Перем ДатаВремя Экспорт;
88
Перем Ссылка Экспорт;
9+
Перем ДвоичныеДанные Экспорт;
910

1011
Перем Типы;
1112
Перем ПримитивныеТипы;
@@ -38,6 +39,7 @@
3839
Время = "Время";
3940
ДатаВремя = "ДатаВремя";
4041
Ссылка = "Ссылка";
42+
ДвоичныеДанные = "ДвоичныеДанные";
4143

4244
Типы = Новый Массив;
4345
Типы.Добавить(Целое);
@@ -48,6 +50,7 @@
4850
Типы.Добавить(Время);
4951
Типы.Добавить(ДатаВремя);
5052
Типы.Добавить(Ссылка);
53+
Типы.Добавить(ДвоичныеДанные);
5154

5255
ПримитивныеТипы = Новый Массив;
5356
ПримитивныеТипы.Добавить(Целое);
@@ -57,3 +60,4 @@
5760
ПримитивныеТипы.Добавить(Дата);
5861
ПримитивныеТипы.Добавить(Время);
5962
ПримитивныеТипы.Добавить(ДатаВремя);
63+
ПримитивныеТипы.Добавить(ДвоичныеДанные);

0 commit comments

Comments
 (0)