|
18 | 18 | import org.hibernate.dialect.pagination.AbstractLimitHandler;
|
19 | 19 | import org.hibernate.dialect.pagination.LimitHandler;
|
20 | 20 | import org.hibernate.dialect.pagination.LimitHelper;
|
21 |
| -import org.hibernate.engine.jdbc.env.spi.AnsiSqlKeywords; |
22 | 21 | import org.hibernate.engine.jdbc.env.spi.IdentifierHelper;
|
23 | 22 | import org.hibernate.engine.jdbc.env.spi.IdentifierHelperBuilder;
|
24 | 23 | import org.hibernate.engine.spi.RowSelection;
|
@@ -64,6 +63,7 @@ public DerbyDialect() {
|
64 | 63 | registerFunction( "concat", new DerbyConcatFunction() );
|
65 | 64 | registerFunction( "trim", new AnsiTrimFunction() );
|
66 | 65 | registerColumnType( Types.BLOB, "blob" );
|
| 66 | + registerDerbyKeywords(); |
67 | 67 | determineDriverVersion();
|
68 | 68 |
|
69 | 69 | if ( driverVersionMajor > 10 || ( driverVersionMajor == 10 && driverVersionMinor >= 7 ) ) {
|
@@ -341,10 +341,221 @@ public IdentifierHelper buildIdentifierHelper(
|
341 | 341 | builder.applyIdentifierCasing( dbMetaData );
|
342 | 342 |
|
343 | 343 | builder.applyReservedWords( dbMetaData );
|
| 344 | + |
344 | 345 | builder.applyReservedWords( getKeywords() );
|
345 | 346 |
|
346 | 347 | builder.setNameQualifierSupport( getNameQualifierSupport() );
|
347 | 348 |
|
348 | 349 | return builder.build();
|
349 | 350 | }
|
| 351 | + |
| 352 | + protected void registerDerbyKeywords() { |
| 353 | + registerKeyword( "ADD" ); |
| 354 | + registerKeyword( "ALL" ); |
| 355 | + registerKeyword( "ALLOCATE" ); |
| 356 | + registerKeyword( "ALTER" ); |
| 357 | + registerKeyword( "AND" ); |
| 358 | + registerKeyword( "ANY" ); |
| 359 | + registerKeyword( "ARE" ); |
| 360 | + registerKeyword( "AS" ); |
| 361 | + registerKeyword( "ASC" ); |
| 362 | + registerKeyword( "ASSERTION" ); |
| 363 | + registerKeyword( "AT" ); |
| 364 | + registerKeyword( "AUTHORIZATION" ); |
| 365 | + registerKeyword( "AVG" ); |
| 366 | + registerKeyword( "BEGIN" ); |
| 367 | + registerKeyword( "BETWEEN" ); |
| 368 | + registerKeyword( "BIT" ); |
| 369 | + registerKeyword( "BOOLEAN" ); |
| 370 | + registerKeyword( "BOTH" ); |
| 371 | + registerKeyword( "BY" ); |
| 372 | + registerKeyword( "CALL" ); |
| 373 | + registerKeyword( "CASCADE" ); |
| 374 | + registerKeyword( "CASCADED" ); |
| 375 | + registerKeyword( "CASE" ); |
| 376 | + registerKeyword( "CAST" ); |
| 377 | + registerKeyword( "CHAR" ); |
| 378 | + registerKeyword( "CHARACTER" ); |
| 379 | + registerKeyword( "CHECK" ); |
| 380 | + registerKeyword( "CLOSE" ); |
| 381 | + registerKeyword( "COLLATE" ); |
| 382 | + registerKeyword( "COLLATION" ); |
| 383 | + registerKeyword( "COLUMN" ); |
| 384 | + registerKeyword( "COMMIT" ); |
| 385 | + registerKeyword( "CONNECT" ); |
| 386 | + registerKeyword( "CONNECTION" ); |
| 387 | + registerKeyword( "CONSTRAINT" ); |
| 388 | + registerKeyword( "CONSTRAINTS" ); |
| 389 | + registerKeyword( "CONTINUE" ); |
| 390 | + registerKeyword( "CONVERT" ); |
| 391 | + registerKeyword( "CORRESPONDING" ); |
| 392 | + registerKeyword( "COUNT" ); |
| 393 | + registerKeyword( "CREATE" ); |
| 394 | + registerKeyword( "CURRENT" ); |
| 395 | + registerKeyword( "CURRENT_DATE" ); |
| 396 | + registerKeyword( "CURRENT_TIME" ); |
| 397 | + registerKeyword( "CURRENT_TIMESTAMP" ); |
| 398 | + registerKeyword( "CURRENT_USER" ); |
| 399 | + registerKeyword( "CURSOR" ); |
| 400 | + registerKeyword( "DEALLOCATE" ); |
| 401 | + registerKeyword( "DEC" ); |
| 402 | + registerKeyword( "DECIMAL" ); |
| 403 | + registerKeyword( "DECLARE" ); |
| 404 | + registerKeyword( "DEFERRABLE" ); |
| 405 | + registerKeyword( "DEFERRED" ); |
| 406 | + registerKeyword( "DELETE" ); |
| 407 | + registerKeyword( "DESC" ); |
| 408 | + registerKeyword( "DESCRIBE" ); |
| 409 | + registerKeyword( "DIAGNOSTICS" ); |
| 410 | + registerKeyword( "DISCONNECT" ); |
| 411 | + registerKeyword( "DISTINCT" ); |
| 412 | + registerKeyword( "DOUBLE" ); |
| 413 | + registerKeyword( "DROP" ); |
| 414 | + registerKeyword( "ELSE" ); |
| 415 | + registerKeyword( "END" ); |
| 416 | + registerKeyword( "ENDEXEC" ); |
| 417 | + registerKeyword( "ESCAPE" ); |
| 418 | + registerKeyword( "EXCEPT" ); |
| 419 | + registerKeyword( "EXCEPTION" ); |
| 420 | + registerKeyword( "EXEC" ); |
| 421 | + registerKeyword( "EXECUTE" ); |
| 422 | + registerKeyword( "EXISTS" ); |
| 423 | + registerKeyword( "EXPLAIN" ); |
| 424 | + registerKeyword( "EXTERNAL" ); |
| 425 | + registerKeyword( "FALSE" ); |
| 426 | + registerKeyword( "FETCH" ); |
| 427 | + registerKeyword( "FIRST" ); |
| 428 | + registerKeyword( "FLOAT" ); |
| 429 | + registerKeyword( "FOR" ); |
| 430 | + registerKeyword( "FOREIGN" ); |
| 431 | + registerKeyword( "FOUND" ); |
| 432 | + registerKeyword( "FROM" ); |
| 433 | + registerKeyword( "FULL" ); |
| 434 | + registerKeyword( "FUNCTION" ); |
| 435 | + registerKeyword( "GET" ); |
| 436 | + registerKeyword( "GET_CURRENT_CONNECTION" ); |
| 437 | + registerKeyword( "GLOBAL" ); |
| 438 | + registerKeyword( "GO" ); |
| 439 | + registerKeyword( "GOTO" ); |
| 440 | + registerKeyword( "GRANT" ); |
| 441 | + registerKeyword( "GROUP" ); |
| 442 | + registerKeyword( "HAVING" ); |
| 443 | + registerKeyword( "HOUR" ); |
| 444 | + registerKeyword( "IDENTITY" ); |
| 445 | + registerKeyword( "IMMEDIATE" ); |
| 446 | + registerKeyword( "IN" ); |
| 447 | + registerKeyword( "INDICATOR" ); |
| 448 | + registerKeyword( "INITIALLY" ); |
| 449 | + registerKeyword( "INNER" ); |
| 450 | + registerKeyword( "INOUT" ); |
| 451 | + registerKeyword( "INPUT" ); |
| 452 | + registerKeyword( "INSENSITIVE" ); |
| 453 | + registerKeyword( "INSERT" ); |
| 454 | + registerKeyword( "INT" ); |
| 455 | + registerKeyword( "INTEGER" ); |
| 456 | + registerKeyword( "INTERSECT" ); |
| 457 | + registerKeyword( "INTO" ); |
| 458 | + registerKeyword( "IS" ); |
| 459 | + registerKeyword( "ISOLATION" ); |
| 460 | + registerKeyword( "JOIN" ); |
| 461 | + registerKeyword( "KEY" ); |
| 462 | + registerKeyword( "LAST" ); |
| 463 | + registerKeyword( "LEFT" ); |
| 464 | + registerKeyword( "LIKE" ); |
| 465 | + registerKeyword( "LONGINT" ); |
| 466 | + registerKeyword( "LOWER" ); |
| 467 | + registerKeyword( "LTRIM" ); |
| 468 | + registerKeyword( "MATCH" ); |
| 469 | + registerKeyword( "MAX" ); |
| 470 | + registerKeyword( "MIN" ); |
| 471 | + registerKeyword( "MINUTE" ); |
| 472 | + registerKeyword( "NATIONAL" ); |
| 473 | + registerKeyword( "NATURAL" ); |
| 474 | + registerKeyword( "NCHAR" ); |
| 475 | + registerKeyword( "NVARCHAR" ); |
| 476 | + registerKeyword( "NEXT" ); |
| 477 | + registerKeyword( "NO" ); |
| 478 | + registerKeyword( "NOT" ); |
| 479 | + registerKeyword( "NULL" ); |
| 480 | + registerKeyword( "NULLIF" ); |
| 481 | + registerKeyword( "NUMERIC" ); |
| 482 | + registerKeyword( "OF" ); |
| 483 | + registerKeyword( "ON" ); |
| 484 | + registerKeyword( "ONLY" ); |
| 485 | + registerKeyword( "OPEN" ); |
| 486 | + registerKeyword( "OPTION" ); |
| 487 | + registerKeyword( "OR" ); |
| 488 | + registerKeyword( "ORDER" ); |
| 489 | + registerKeyword( "OUT" ); |
| 490 | + registerKeyword( "OUTER" ); |
| 491 | + registerKeyword( "OUTPUT" ); |
| 492 | + registerKeyword( "OVERLAPS" ); |
| 493 | + registerKeyword( "PAD" ); |
| 494 | + registerKeyword( "PARTIAL" ); |
| 495 | + registerKeyword( "PREPARE" ); |
| 496 | + registerKeyword( "PRESERVE" ); |
| 497 | + registerKeyword( "PRIMARY" ); |
| 498 | + registerKeyword( "PRIOR" ); |
| 499 | + registerKeyword( "PRIVILEGES" ); |
| 500 | + registerKeyword( "PROCEDURE" ); |
| 501 | + registerKeyword( "PUBLIC" ); |
| 502 | + registerKeyword( "READ" ); |
| 503 | + registerKeyword( "REAL" ); |
| 504 | + registerKeyword( "REFERENCES" ); |
| 505 | + registerKeyword( "RELATIVE" ); |
| 506 | + registerKeyword( "RESTRICT" ); |
| 507 | + registerKeyword( "REVOKE" ); |
| 508 | + registerKeyword( "RIGHT" ); |
| 509 | + registerKeyword( "ROLLBACK" ); |
| 510 | + registerKeyword( "ROWS" ); |
| 511 | + registerKeyword( "RTRIM" ); |
| 512 | + registerKeyword( "SCHEMA" ); |
| 513 | + registerKeyword( "SCROLL" ); |
| 514 | + registerKeyword( "SECOND" ); |
| 515 | + registerKeyword( "SELECT" ); |
| 516 | + registerKeyword( "SESSION_USER" ); |
| 517 | + registerKeyword( "SET" ); |
| 518 | + registerKeyword( "SMALLINT" ); |
| 519 | + registerKeyword( "SOME" ); |
| 520 | + registerKeyword( "SPACE" ); |
| 521 | + registerKeyword( "SQL" ); |
| 522 | + registerKeyword( "SQLCODE" ); |
| 523 | + registerKeyword( "SQLERROR" ); |
| 524 | + registerKeyword( "SQLSTATE" ); |
| 525 | + registerKeyword( "SUBSTR" ); |
| 526 | + registerKeyword( "SUBSTRING" ); |
| 527 | + registerKeyword( "SUM" ); |
| 528 | + registerKeyword( "SYSTEM_USER" ); |
| 529 | + registerKeyword( "TABLE" ); |
| 530 | + registerKeyword( "TEMPORARY" ); |
| 531 | + registerKeyword( "TIMEZONE_HOUR" ); |
| 532 | + registerKeyword( "TIMEZONE_MINUTE" ); |
| 533 | + registerKeyword( "TO" ); |
| 534 | + registerKeyword( "TRAILING" ); |
| 535 | + registerKeyword( "TRANSACTION" ); |
| 536 | + registerKeyword( "TRANSLATE" ); |
| 537 | + registerKeyword( "TRANSLATION" ); |
| 538 | + registerKeyword( "TRUE" ); |
| 539 | + registerKeyword( "UNION" ); |
| 540 | + registerKeyword( "UNIQUE" ); |
| 541 | + registerKeyword( "UNKNOWN" ); |
| 542 | + registerKeyword( "UPDATE" ); |
| 543 | + registerKeyword( "UPPER" ); |
| 544 | + registerKeyword( "USER" ); |
| 545 | + registerKeyword( "USING" ); |
| 546 | + registerKeyword( "VALUES" ); |
| 547 | + registerKeyword( "VARCHAR" ); |
| 548 | + registerKeyword( "VARYING" ); |
| 549 | + registerKeyword( "VIEW" ); |
| 550 | + registerKeyword( "WHENEVER" ); |
| 551 | + registerKeyword( "WHERE" ); |
| 552 | + registerKeyword( "WITH" ); |
| 553 | + registerKeyword( "WORK" ); |
| 554 | + registerKeyword( "WRITE" ); |
| 555 | + registerKeyword( "XML" ); |
| 556 | + registerKeyword( "XMLEXISTS" ); |
| 557 | + registerKeyword( "XMLPARSE" ); |
| 558 | + registerKeyword( "XMLSERIALIZE" ); |
| 559 | + registerKeyword( "YEAR" ); |
| 560 | + } |
350 | 561 | }
|
0 commit comments