Skip to content

Commit eac8faa

Browse files
author
dennis-dko
committed
Issue #1908: Updating sql drivers to use NOT NULL and DEFAULT correctly, cannot use bind because it will quote variables with inverted commas in sql query.
1 parent 9df8b6c commit eac8faa

File tree

3 files changed

+15
-39
lines changed

3 files changed

+15
-39
lines changed

Kernel/System/MigrateFromOTRS/CloneDB/Driver/mysql.pm

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ sub TranslateColumnInfos {
269269
}
270270

271271
# Alter table add column
272+
# Note: add also custom columns which not belongs to standard
272273
sub AlterTableAddColumn {
273274
my ( $Self, %Param ) = @_;
274275

@@ -285,32 +286,23 @@ sub AlterTableAddColumn {
285286
}
286287

287288
my %ColumnInfos = %{ $Param{ColumnInfos} };
288-
my $SQL = qq{ALTER TABLE ? ADD ? ?};
289-
290-
my @Bind = (
291-
\$Param{Table},
292-
\$Param{Column},
293-
\$ColumnInfos{DATA_TYPE},
294-
);
289+
my $SQL = qq{ALTER TABLE $Param{Table} ADD $Param{Column} $ColumnInfos{DATA_TYPE}};
295290

296291
if ( $ColumnInfos{LENGTH} ) {
297-
$SQL .= " (?)";
298-
push(@Bind, \$ColumnInfos{LENGTH});
292+
$SQL .= " ($ColumnInfos{LENGTH})";
299293
}
300294

301295
if ( $ColumnInfos{COLUMN_DEFAULT} ) {
302-
$SQL .= qq{ DEFAULT "?"};
303-
push(@Bind, \$ColumnInfos{COLUMN_DEFAULT});
296+
$SQL .= " DEFAULT '$ColumnInfos{COLUMN_DEFAULT}'";
304297
}
305298

306299
# IS_NULLABLE is either YES or NO
307300
if ( $ColumnInfos{IS_NULLABLE} eq "NO" ) {
308-
$SQL .= ' NOT NULL';
301+
$SQL .= " NOT NULL";
309302
}
310303

311304
my $Success = $Param{DBObject}->Do(
312305
SQL => $SQL,
313-
Bind => \@Bind,
314306
);
315307

316308
if ( !$Success ) {

Kernel/System/MigrateFromOTRS/CloneDB/Driver/oracle.pm

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ sub TranslateColumnInfos {
354354
}
355355

356356
# Alter table add column
357+
# Note: add also custom columns which not belongs to standard
357358
sub AlterTableAddColumn {
358359
my ( $Self, %Param ) = @_;
359360

@@ -370,32 +371,23 @@ sub AlterTableAddColumn {
370371
}
371372

372373
my %ColumnInfos = %{ $Param{ColumnInfos} };
373-
my $SQL = qq{ALTER TABLE ? ADD ? ?};
374-
375-
my @Bind = (
376-
\$Param{Table},
377-
\$Param{Column},
378-
\$ColumnInfos{DATA_TYPE},
379-
);
374+
my $SQL = qq{ALTER TABLE $Param{Table} ADD $Param{Column} $ColumnInfos{DATA_TYPE}};
380375

381376
if ( $ColumnInfos{LENGTH} ) {
382-
$SQL .= " (?)";
383-
push(@Bind, \$ColumnInfos{LENGTH});
377+
$SQL .= " ($ColumnInfos{LENGTH})";
384378
}
385379

386380
if ( $ColumnInfos{COLUMN_DEFAULT} ) {
387-
$SQL .= qq{ DEFAULT "?"};
388-
push(@Bind, \$ColumnInfos{COLUMN_DEFAULT});
381+
$SQL .= " DEFAULT '$ColumnInfos{COLUMN_DEFAULT}'";
389382
}
390383

391384
# IS_NULLABLE is either YES or NO
392385
if ( $ColumnInfos{IS_NULLABLE} eq "NO" ) {
393-
$SQL .= ' NOT NULL';
386+
$SQL .= " NOT NULL";
394387
}
395388

396389
my $Success = $Param{DBObject}->Do(
397390
SQL => $SQL,
398-
Bind => \@Bind,
399391
);
400392

401393
if ( !$Success ) {

Kernel/System/MigrateFromOTRS/CloneDB/Driver/postgresql.pm

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ sub TranslateColumnInfos {
324324
}
325325

326326
# Alter table add column
327+
# Note: add also custom columns which not belongs to standard
327328
sub AlterTableAddColumn {
328329
my ( $Self, %Param ) = @_;
329330

@@ -340,32 +341,23 @@ sub AlterTableAddColumn {
340341
}
341342

342343
my %ColumnInfos = %{ $Param{ColumnInfos} };
343-
my $SQL = qq{ALTER TABLE ? ADD ? ?};
344-
345-
my @Bind = (
346-
\$Param{Table},
347-
\$Param{Column},
348-
\$ColumnInfos{DATA_TYPE},
349-
);
344+
my $SQL = qq{ALTER TABLE $Param{Table} ADD $Param{Column} $ColumnInfos{DATA_TYPE}};
350345

351346
if ( $ColumnInfos{LENGTH} ) {
352-
$SQL .= " (?)";
353-
push(@Bind, \$ColumnInfos{LENGTH});
347+
$SQL .= " ($ColumnInfos{LENGTH})";
354348
}
355349

356350
if ( $ColumnInfos{COLUMN_DEFAULT} ) {
357-
$SQL .= qq{ DEFAULT "?"};
358-
push(@Bind, \$ColumnInfos{COLUMN_DEFAULT});
351+
$SQL .= " DEFAULT '$ColumnInfos{COLUMN_DEFAULT}'";
359352
}
360353

361354
# IS_NULLABLE is either YES or NO
362355
if ( $ColumnInfos{IS_NULLABLE} eq "NO" ) {
363-
$SQL .= ' NOT NULL';
356+
$SQL .= " NOT NULL";
364357
}
365358

366359
my $Success = $Param{DBObject}->Do(
367360
SQL => $SQL,
368-
Bind => \@Bind,
369361
);
370362

371363
if ( !$Success ) {

0 commit comments

Comments
 (0)