Просмотр исходного кода

YQL-17624: oid columns are now right-aligned in pgrun table output (#1199)

Mars Agliullin 1 год назад
Родитель
Сommit
bd5be8b454

+ 61 - 0
ydb/library/yql/tests/postgresql/cases/oid.out

@@ -52,10 +52,71 @@ INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
 ERROR:  value "-23582358720398502385" is out of range for type oid
 LINE 1: INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
                                         ^
+SELECT * FROM OID_TBL;
+     f1     
+------------
+       1234
+       1235
+        987
+ 4294966256
+   99999999
+          5
+         10
+         15
+(8 rows)
+
 SELECT o.* FROM OID_TBL o WHERE o.f1 = 1234;
   f1  
 ------
  1234
 (1 row)
 
+SELECT o.* FROM OID_TBL o WHERE o.f1 <> '1234';
+     f1     
+------------
+       1235
+        987
+ 4294966256
+   99999999
+          5
+         10
+         15
+(7 rows)
+
+SELECT o.* FROM OID_TBL o WHERE o.f1 <= '1234';
+  f1  
+------
+ 1234
+  987
+    5
+   10
+   15
+(5 rows)
+
+SELECT o.* FROM OID_TBL o WHERE o.f1 < '1234';
+ f1  
+-----
+ 987
+   5
+  10
+  15
+(4 rows)
+
+SELECT o.* FROM OID_TBL o WHERE o.f1 >= '1234';
+     f1     
+------------
+       1234
+       1235
+ 4294966256
+   99999999
+(4 rows)
+
+SELECT o.* FROM OID_TBL o WHERE o.f1 > '1234';
+     f1     
+------------
+       1235
+ 4294966256
+   99999999
+(3 rows)
+
 DROP TABLE OID_TBL;

+ 6 - 0
ydb/library/yql/tests/postgresql/cases/oid.sql

@@ -22,5 +22,11 @@ INSERT INTO OID_TBL(f1) VALUES ('5    5');
 INSERT INTO OID_TBL(f1) VALUES (' - 500');
 INSERT INTO OID_TBL(f1) VALUES ('32958209582039852935');
 INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
+SELECT * FROM OID_TBL;
 SELECT o.* FROM OID_TBL o WHERE o.f1 = 1234;
+SELECT o.* FROM OID_TBL o WHERE o.f1 <> '1234';
+SELECT o.* FROM OID_TBL o WHERE o.f1 <= '1234';
+SELECT o.* FROM OID_TBL o WHERE o.f1 < '1234';
+SELECT o.* FROM OID_TBL o WHERE o.f1 >= '1234';
+SELECT o.* FROM OID_TBL o WHERE o.f1 > '1234';
 DROP TABLE OID_TBL;

+ 1 - 1
ydb/library/yql/tests/postgresql/pg_tests.csv

@@ -33,7 +33,7 @@ limit,84,5,5.95
 name,40,22,55.0
 numeric,915,715,78.14
 numerology,24,8,33.33
-oid,27,21,77.78
+oid,27,27,100.0
 select,88,9,10.23
 select_distinct,46,1,2.17
 select_distinct_on,4,0,0.0

+ 2 - 2
ydb/library/yql/tests/postgresql/status.md

@@ -1,4 +1,4 @@
-==Статус прохождения регрессионных тестов PG в YQL==
+==Статус прохождения регрессионных тестов PG в YQL
 
 #|
 ||№ п/п | Имя теста|Число операторов| Из них выполняется| % выполнения | Последнее обновление | Основные проблемы ||
@@ -10,7 +10,7 @@
 || 6 | int2 | 49 | 47 | 95.92 | 29.09.2023 | YQL-17612 ||
 || 7 | int4 | 70 | 70 | 100.0 | 29.09.2023 | ||
 || 8 | int8 | 142 | 113 (+65) | 79.58 | 22.01.2024 | YQL-17614 ||
-|| 9 | oid | 27 | 21 | 77.78 | 29.09.2023 | ||
+|| 9 | oid | 27 | 27 (+6) | 100.0 | 22.01.2024 | YQL-17623 ||
 || 10 | float4 | 96 | 48 | 50.0 | 29.09.2023 | CREATE TYPE, CREATE FUNCTION, WITH, форматирование NaN и Infinity, float4send ||
 || 11 | float8 | 168 | 96 | 57.14 | 25.10.2023 | CREATE CAST, форматирование NaN и Infinity, extra_float_digits, implicit casts, float8send ||
 || 12 | bit | 115 | 84 | 73.04 | 12.12.2023 | substring, COPY  FROM stdin, битовые константы ||

+ 46 - 46
ydb/library/yql/tests/postgresql/status.old

@@ -1,61 +1,61 @@
-==Статус прохождения регрессионных тестов PG в YQL==
+==Статус прохождения регрессионных тестов PG в YQL
 
 #|
 ||№ п/п | Имя теста|Число операторов| Из них выполняется| % выполнения | Последнее обновление | Основные проблемы ||
-|| 1 | boolean | 93 | 73 (+6) | 78.49 | 16.12.2023 | DROP TABLE, implicit casts ||
-|| 2 | char | 25 | 3 | 12.0 | 25.05.2023 | implicit cast, pgbpchar vs pgtext ||
-|| 3 | name | 40 | 22 (+17) | 55.0 | 29.09.2023 | parse_ident, implicit casts ||
-|| 4 | varchar | 24 | 2 | 8.33 | 25.05.2023 | ||
-|| 5 | text | 76 | 15 (+10) | 19.74 | 12.12.2023 | строковые функции (format, concat, concat_ws, length) и оператор конкатенации, implicit casts, отличаются сообщения об ошибках для оператора конкатенации с аргументами неподходящих типов ||
-|| 6 | int2 | 49 | 47 (+39) | 95.92 | 29.09.2023 | ||
-|| 7 | int4 | 70 | 70 (+42) | 100.0 | 29.09.2023 | ||
-|| 8 | int8 | 142 | 48 (+35) | 33.8 | 12.12.2023 | generate_series, pg_type, gcd, implicit casts ||
-|| 9 | oid | 27 | 21 (+19) | 77.78 | 29.09.2023 | ||
-|| 10 | float4 | 96 | 48 (+31) | 50.0 | 29.09.2023 | CREATE TYPE, CREATE FUNCTION, WITH, форматирование NaN и Infinity, float4send ||
-|| 11 | float8 | 168 | 96 (+1) | 57.14 | 25.10.2023 | CREATE CAST, форматирование NaN и Infinity, extra_float_digits, implicit casts, float8send ||
-|| 12 | bit | 115 | 84 (+80) | 73.04 | 12.12.2023 | substring, COPY  FROM stdin, битовые константы ||
-|| 13 | numeric | 915 | 715 (+189) | 78.14 | 12.12.2023 | CREATE UNIQUE INDEX, VACUUM ANALYZE, implicit casts, ошибочно проходит cast в int2 и int8, форматирование NaN и Infinity, COPY FROM stdin, SET lc_numeric, умножение больших целых чисел не дает в результате число с плавающей точкой, sum(), округление, nullif, форматирование чисел ||
+|| 1 | boolean | 93 | 79 (+6) | 84.95 | 22.01.2024 | YQL-17569 ||
+|| 2 | char | 25 | 16 (+13) | 64.0 | 19.01.2024 | YQL-17571 ||
+|| 3 | name | 40 | 22 | 55.0 | 29.09.2023 | YQL-17598 ||
+|| 4 | varchar | 24 | 15 (+13) | 62.5 | 19.01.2024 | YQL-17603 ||
+|| 5 | text | 76 | 16 (+1) | 21.05 | 22.01.2024 | YQL-17568 ||
+|| 6 | int2 | 49 | 47 | 95.92 | 29.09.2023 | YQL-17612 ||
+|| 7 | int4 | 70 | 70 | 100.0 | 29.09.2023 | ||
+|| 8 | int8 | 142 | 113 (+65) | 79.58 | 22.01.2024 | YQL-17614 ||
+|| 9 | oid | 27 | 21 | 77.78 | 29.09.2023 | YQL-17623 ||
+|| 10 | float4 | 96 | 48 | 50.0 | 29.09.2023 | CREATE TYPE, CREATE FUNCTION, WITH, форматирование NaN и Infinity, float4send ||
+|| 11 | float8 | 168 | 96 | 57.14 | 25.10.2023 | CREATE CAST, форматирование NaN и Infinity, extra_float_digits, implicit casts, float8send ||
+|| 12 | bit | 115 | 84 | 73.04 | 12.12.2023 | substring, COPY  FROM stdin, битовые константы ||
+|| 13 | numeric | 915 | 715 | 78.14 | 12.12.2023 | CREATE UNIQUE INDEX, VACUUM ANALYZE, implicit casts, ошибочно проходит cast в int2 и int8, форматирование NaN и Infinity, COPY FROM stdin, SET lc_numeric, умножение больших целых чисел не дает в результате число с плавающей точкой, sum(), округление, nullif, форматирование чисел ||
 || 14 | uuid | 36 | 0 | 0.0 | 02.05.2023 | ||·
-|| 15 | strings | 390 | 31 (+3) | 7.95 | 25.08.2023 | SET, RESET, standard_conforming_strings, bytea_output, неинициализированная поддержка регулярок, pg_class  ||
-|| 16 | numerology | 24 | 8 (+4) | 33.33 | 26.07.2023 |  ||
-|| 17 | date | 264 | 200 (+183) | 75.76 | 12.12.2023 | ||
-|| 18 | time | 39 | 33 (+22) | 84.62 | 12.12.2023 | ||
-|| 19 | timetz | 45 | 29 (+16) | 64.44 | 12.12.2023 | ||
-|| 20 | timestamp | 145 | 98 (+17) | 67.59 | 12.12.2023 | ||
-|| 21 | timestamptz | 315 | 108 (+25) | 34.29 | 12.12.2023 | ||
-|| 22 | interval | 168 | 115 (+1) | 68.45 | 25.10.2023 | ||
-|| 23 | horology | 306 | 79 (+28) | 25.82 | 10.08.2023 | SET, DateStyle, TimeZone, автоматически назначаемые имена колонкам-выражениям, SET TIME ZOME, RESET TIME ZONE, интервальный тип ПГ, ||
+|| 15 | strings | 390 | 31 | 7.95 | 25.08.2023 | SET, RESET, standard_conforming_strings, bytea_output, неинициализированная поддержка регулярок, pg_class  ||
+|| 16 | numerology | 24 | 8 | 33.33 | 26.07.2023 |  ||
+|| 17 | date | 264 | 200 | 75.76 | 12.12.2023 | ||
+|| 18 | time | 39 | 33 | 84.62 | 12.12.2023 | ||
+|| 19 | timetz | 45 | 29 | 64.44 | 12.12.2023 | ||
+|| 20 | timestamp | 145 | 98 | 67.59 | 12.12.2023 | ||
+|| 21 | timestamptz | 315 | 108 | 34.29 | 12.12.2023 | ||
+|| 22 | interval | 168 | 115 | 68.45 | 25.10.2023 | ||
+|| 23 | horology | 306 | 79 | 25.82 | 10.08.2023 | SET, DateStyle, TimeZone, автоматически назначаемые имена колонкам-выражениям, SET TIME ZOME, RESET TIME ZONE, интервальный тип ПГ, ||
 || 24 | comments | 7 | 7 | 100.0 | 25.05.2023 |  ||
-|| 25 | expressions | 63 | 14 (+4) | 22.22 | 25.10.2023 | ||
-|| 26 | unicode | 13 | 4 (+4) | 30.77 | 10.08.2023 | ||
+|| 25 | expressions | 63 | 14 | 22.22 | 25.10.2023 | ||
+|| 26 | unicode | 13 | 4 | 30.77 | 10.08.2023 | ||
 || 27 | create_table | 368 | 43 | 11.68 | 12.12.2023 | CREATE UNLOGGED TABLE, REINDEX, PREPARE ... SELECT, DEALLOCATE, \gexec, pg_class, pg_attribute, CREATE TABLE PARTITION OF ||
-|| 28 | insert | 357 | 15 (+5) | 4.2 | 12.12.2023 | CREATE TEMP TABLE, ALTER TABLE, DROP TABLE, CREATE TYPE, CREATE RULE, \d+, DROP TYPE, create table...partition by range, create table ... partition of ..., tableoid::regclass, create or replace function, create operator, ||
-|| 29 | create_misc | 76 | 3 (+2) | 3.95 | 29.09.2023 | ||
-|| 30 | select | 88 | 9 (+5) | 10.23 | 12.12.2023 | порядок сортировки в виде  ORDER BY поле using > или <, а также NULLS FIRST/LAST; ANALYZE, переменные enable_seqscan, enable_bitmapscan, enable_sort,  whole-row Var referencing a subquery, подзапросы внутри values, INSERT INTO ... DEFAULT VALUES, Range sub select unsupported lateral, CREATE INDEX, DROP INDEX, explain (опции costs, analyze, timing, summary), SELECT 1 AS x ORDER BY x; CREATE FUNCTION, DROP FUNCTION, table inheritance, PARTITION BY ||
+|| 28 | insert | 357 | 15 | 4.2 | 12.12.2023 | CREATE TEMP TABLE, ALTER TABLE, DROP TABLE, CREATE TYPE, CREATE RULE, \d+, DROP TYPE, create table...partition by range, create table ... partition of ..., tableoid::regclass, create or replace function, create operator, ||
+|| 29 | create_misc | 76 | 3 | 3.95 | 29.09.2023 | ||
+|| 30 | select | 88 | 9 | 10.23 | 12.12.2023 | порядок сортировки в виде  ORDER BY поле using > или <, а также NULLS FIRST/LAST; ANALYZE, переменные enable_seqscan, enable_bitmapscan, enable_sort,  whole-row Var referencing a subquery, подзапросы внутри values, INSERT INTO ... DEFAULT VALUES, Range sub select unsupported lateral, CREATE INDEX, DROP INDEX, explain (опции costs, analyze, timing, summary), SELECT 1 AS x ORDER BY x; CREATE FUNCTION, DROP FUNCTION, table inheritance, PARTITION BY ||
 || 31 | select_into | 67 | 3 | 4.48 | 27.07.2023 | ||
 || 32 | select_distinct | 46 | 1 | 2.17 | 27.07.2023 | ||
 || 33 | select_distinct_on | 4 | 0 | 0.0 | 25.05.2023 | ||
-|| 34 | select_implicit | 44 | 13 (+2) | 29.55 | 12.12.2023 | ||
-|| 35 | select_having | 23 | 16 (+5) | 69.57 | 12.12.2023 | ||
-|| 36 | subselect | 234 | 2 | 0.85 | 25.05.2023 | ||
+|| 34 | select_implicit | 44 | 13 | 29.55 | 12.12.2023 | ||
+|| 35 | select_having | 23 | 16 | 69.57 | 12.12.2023 | ||
+|| 36 | subselect | 234 | 5 (+3) | 2.14 | 19.01.2024 | ||
 || 37 | union | 186 | 0 | 0.0 | 25.05.2023 | ||
-|| 38 | case | 63 | 29 (+16) | 46.03 | 12.12.2023 | implicit casts, create function volatile ||
-|| 39 | join | 591 | 106 (+83) | 17.94 | 12.12.2023 | ||
-|| 40 | aggregates | 416 | 51 (+50) | 12.26 | 12.12.2023 | ||
-|| 41 | arrays | 410 | 119 (+118) | 29.02 | 12.12.2023 | ||
-|| 42 | update | 288 | 22 (+5) | 7.64 | 12.12.2023 | :-переменные ||
+|| 38 | case | 63 | 29 | 46.03 | 12.12.2023 | implicit casts, create function volatile ||
+|| 39 | join | 591 | 106 | 17.94 | 12.12.2023 | ||
+|| 40 | aggregates | 416 | 51 | 12.26 | 12.12.2023 | ||
+|| 41 | arrays | 410 | 119 | 29.02 | 12.12.2023 | ||
+|| 42 | update | 288 | 22 | 7.64 | 12.12.2023 | :-переменные ||
 || 43 | delete | 10 | 0 | 0.0 | 25.05.2023 | ||
-|| 44 | dbsize | 24 | 24 (+16) | 100.0 | 10.08.2023 | ||
-|| 45 | window | 298 | 5 (+3) | 1.68 | 12.12.2023 | ||
-|| 46 | functional_deps | 40 | 6 (+2) | 15.0 | 12.12.2023 | ||
-|| 47 | json | 454 | 115 (+64) | 25.33 | 12.12.2023 | ||
-|| 48 | jsonb | 1017 | 382 (+1) | 37.56 | 16.12.2023 | ||
+|| 44 | dbsize | 24 | 24 | 100.0 | 10.08.2023 | ||
+|| 45 | window | 298 | 5 | 1.68 | 12.12.2023 | ||
+|| 46 | functional_deps | 40 | 7 (+1) | 17.5 | 19.01.2024 | ||
+|| 47 | json | 454 | 114 | 25.11 | 19.01.2024 | ||
+|| 48 | jsonb | 1017 | 381 | 37.46 | 19.01.2024 | ||
 || 49 | json_encoding | 42 | 42 | 100.0 | 29.05.2023 | ||
 || 50 | jsonpath | 169 | 152 | 89.94 | 29.05.2023 | числа с точкой без целой части (например .1), литерал '00' ||
 || 51 | jsonpath_encoding | 31 | 31 | 100.0 | 29.05.2023 | ||
-|| 52 | jsonb_jsonpath | 427 | 88 (+83) | 20.61 | 12.12.2023 | ||
-|| 53 | limit | 84 | 5 (+4) | 5.95 | 10.08.2023 | ||
-|| 54 | truncate | 193 | 33 (+30) | 17.1 | 12.12.2023 | ||
-|| 55 | alter_table | 1679 | 11 (+7) | 0.66 | 12.12.2023 | COMMENT ON TABLE ||
-|| 56 | xml | 234 | 15 (+12) | 6.41 | 12.12.2023 | \set VERBOSITY ||
+|| 52 | jsonb_jsonpath | 427 | 88 | 20.61 | 12.12.2023 | ||
+|| 53 | limit | 84 | 5 | 5.95 | 10.08.2023 | ||
+|| 54 | truncate | 193 | 33 | 17.1 | 12.12.2023 | ||
+|| 55 | alter_table | 1679 | 11 | 0.66 | 12.12.2023 | COMMENT ON TABLE ||
+|| 56 | xml | 234 | 15 | 6.41 | 12.12.2023 | \set VERBOSITY ||
 |#

+ 2 - 0
ydb/library/yql/tools/pgrun/pgrun.cpp

@@ -751,6 +751,7 @@ static const THashSet<TColumnType> RightAlignedTypes {
     "float4",
     "float8",
     "numeric",
+    "oid",
 };
 
 struct TColumn {
@@ -1100,6 +1101,7 @@ int Main(int argc, char* argv[])
         }
 
         if (program->HasResults()) {
+            // PrintExprTo(program, Cout);
             // Cout << program->ResultsAsString() << Endl;
 
             const auto root = ParseYson(program->ResultsAsString());