Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6f04368

Browse files
committed
Allow input format xxxx-xxxx-xxxx for macaddr type
Author: Herwin Weststrate <herwin@quarantainenet.nl>Reviewed-by: Ali Akbar <the.apaan@gmail.com>
1 parent5d93ce2 commit6f04368

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

‎doc/src/sgml/datatype.sgml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3645,6 +3645,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
36453645
<member><literal>'08002b:010203'</></member>
36463646
<member><literal>'08002b-010203'</></member>
36473647
<member><literal>'0800.2b01.0203'</></member>
3648+
<member><literal>'0800-2b01-0203'</></member>
36483649
<member><literal>'08002b010203'</></member>
36493650
</simplelist>
36503651

@@ -3666,7 +3667,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
36663667
</para>
36673668

36683669
<para>
3669-
The remainingfour input formats are not part of any standard.
3670+
The remainingfive input formats are not part of any standard.
36703671
</para>
36713672
</sect2>
36723673

‎src/backend/utils/adt/mac.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ macaddr_in(PG_FUNCTION_ARGS)
5656
if (count!=6)
5757
count=sscanf(str,"%2x%2x.%2x%2x.%2x%2x%1s",
5858
&a,&b,&c,&d,&e,&f,junk);
59+
if (count!=6)
60+
count=sscanf(str,"%2x%2x-%2x%2x-%2x%2x%1s",
61+
&a,&b,&c,&d,&e,&f,junk);
5962
if (count!=6)
6063
count=sscanf(str,"%2x%2x%2x%2x%2x%2x%1s",
6164
&a,&b,&c,&d,&e,&f,junk);

‎src/test/regress/expected/macaddr.out

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ INSERT INTO macaddr_data VALUES (2, '08-00-2b-01-02-03');
77
INSERT INTO macaddr_data VALUES (3, '08002b:010203');
88
INSERT INTO macaddr_data VALUES (4, '08002b-010203');
99
INSERT INTO macaddr_data VALUES (5, '0800.2b01.0203');
10-
INSERT INTO macaddr_data VALUES (6, '08002b010203');
11-
INSERT INTO macaddr_data VALUES (7, '0800:2b01:0203'); -- invalid
10+
INSERT INTO macaddr_data VALUES (6, '0800-2b01-0203');
11+
INSERT INTO macaddr_data VALUES (7, '08002b010203');
12+
INSERT INTO macaddr_data VALUES (8, '0800:2b01:0203'); -- invalid
1213
ERROR: invalid input syntax for type macaddr: "0800:2b01:0203"
13-
LINE 1: INSERT INTO macaddr_data VALUES (7, '0800:2b01:0203');
14+
LINE 1: INSERT INTO macaddr_data VALUES (8, '0800:2b01:0203');
1415
^
15-
INSERT INTO macaddr_data VALUES (8, 'not even close'); -- invalid
16+
INSERT INTO macaddr_data VALUES (9, 'not even close'); -- invalid
1617
ERROR: invalid input syntax for type macaddr: "not even close"
17-
LINE 1: INSERT INTO macaddr_data VALUES (8, 'not even close');
18+
LINE 1: INSERT INTO macaddr_data VALUES (9, 'not even close');
1819
^
1920
INSERT INTO macaddr_data VALUES (10, '08:00:2b:01:02:04');
2021
INSERT INTO macaddr_data VALUES (11, '08:00:2b:01:02:02');
@@ -30,12 +31,13 @@ SELECT * FROM macaddr_data;
3031
4 | 08:00:2b:01:02:03
3132
5 | 08:00:2b:01:02:03
3233
6 | 08:00:2b:01:02:03
34+
7 | 08:00:2b:01:02:03
3335
10 | 08:00:2b:01:02:04
3436
11 | 08:00:2b:01:02:02
3537
12 | 08:00:2a:01:02:03
3638
13 | 08:00:2c:01:02:03
3739
14 | 08:00:2a:01:02:04
38-
(11 rows)
40+
(12 rows)
3941

4042
CREATE INDEX macaddr_data_btree ON macaddr_data USING btree (b);
4143
CREATE INDEX macaddr_data_hash ON macaddr_data USING hash (b);
@@ -52,9 +54,10 @@ SELECT a, b, trunc(b) FROM macaddr_data ORDER BY 2, 1;
5254
4 | 08:00:2b:01:02:03 | 08:00:2b:00:00:00
5355
5 | 08:00:2b:01:02:03 | 08:00:2b:00:00:00
5456
6 | 08:00:2b:01:02:03 | 08:00:2b:00:00:00
57+
7 | 08:00:2b:01:02:03 | 08:00:2b:00:00:00
5558
10 | 08:00:2b:01:02:04 | 08:00:2b:00:00:00
5659
13 | 08:00:2c:01:02:03 | 08:00:2c:00:00:00
57-
(11 rows)
60+
(12 rows)
5861

5962
SELECT b < '08:00:2b:01:02:04' FROM macaddr_data WHERE a = 1; -- true
6063
?column?
@@ -113,12 +116,13 @@ SELECT ~b FROM macaddr_data;
113116
f7:ff:d4:fe:fd:fc
114117
f7:ff:d4:fe:fd:fc
115118
f7:ff:d4:fe:fd:fc
119+
f7:ff:d4:fe:fd:fc
116120
f7:ff:d4:fe:fd:fb
117121
f7:ff:d4:fe:fd:fd
118122
f7:ff:d5:fe:fd:fc
119123
f7:ff:d3:fe:fd:fc
120124
f7:ff:d5:fe:fd:fb
121-
(11 rows)
125+
(12 rows)
122126

123127
SELECT b & '00:00:00:ff:ff:ff' FROM macaddr_data;
124128
?column?
@@ -129,12 +133,13 @@ SELECT b & '00:00:00:ff:ff:ff' FROM macaddr_data;
129133
00:00:00:01:02:03
130134
00:00:00:01:02:03
131135
00:00:00:01:02:03
136+
00:00:00:01:02:03
132137
00:00:00:01:02:04
133138
00:00:00:01:02:02
134139
00:00:00:01:02:03
135140
00:00:00:01:02:03
136141
00:00:00:01:02:04
137-
(11 rows)
142+
(12 rows)
138143

139144
SELECT b | '01:02:03:04:05:06' FROM macaddr_data;
140145
?column?
@@ -145,11 +150,12 @@ SELECT b | '01:02:03:04:05:06' FROM macaddr_data;
145150
09:02:2b:05:07:07
146151
09:02:2b:05:07:07
147152
09:02:2b:05:07:07
153+
09:02:2b:05:07:07
148154
09:02:2b:05:07:06
149155
09:02:2b:05:07:06
150156
09:02:2b:05:07:07
151157
09:02:2f:05:07:07
152158
09:02:2b:05:07:06
153-
(11 rows)
159+
(12 rows)
154160

155161
DROP TABLE macaddr_data;

‎src/test/regress/sql/macaddr.sql

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ INSERT INTO macaddr_data VALUES (2, '08-00-2b-01-02-03');
99
INSERT INTO macaddr_dataVALUES (3,'08002b:010203');
1010
INSERT INTO macaddr_dataVALUES (4,'08002b-010203');
1111
INSERT INTO macaddr_dataVALUES (5,'0800.2b01.0203');
12-
INSERT INTO macaddr_dataVALUES (6,'08002b010203');
13-
INSERT INTO macaddr_dataVALUES (7,'0800:2b01:0203');-- invalid
14-
INSERT INTO macaddr_dataVALUES (8,'not even close');-- invalid
12+
INSERT INTO macaddr_dataVALUES (6,'0800-2b01-0203');
13+
INSERT INTO macaddr_dataVALUES (7,'08002b010203');
14+
INSERT INTO macaddr_dataVALUES (8,'0800:2b01:0203');-- invalid
15+
INSERT INTO macaddr_dataVALUES (9,'not even close');-- invalid
1516

1617
INSERT INTO macaddr_dataVALUES (10,'08:00:2b:01:02:04');
1718
INSERT INTO macaddr_dataVALUES (11,'08:00:2b:01:02:02');

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp