Git Product home page Git Product logo

h2-functions-4-mysql's Introduction

h2-functions-4-mysql

H2 User defined functions for MySQL.

Why this project?

I always use H2 for unit test instead of real MySQL(Docker), but some MySQL functions are not available in H2. So I create this project to define some functions for MySQL and make unit test easy.

How to use?

In you pom.xml add following dependency:

<dependency>
    <groupId>org.mvnsearch.mysql</groupId>
    <artifactId>h2-functions-4-mysql</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>
  • Flyway with Spring Boot: automatically(classpath:db/migration/h2/V0_functions.sql), no configuration.
  • Manual: Add following code in your application. datasource is h2 datasource.
H2FunctionsLoader.loadMysqlFunctions(dataSource);

Function List

N: not available, Y: same, A: available

MySQL H2 Status
ABS ABS Y
ACOS ACOS Y
ADDDATE A
ADDTIME A
AES_DECRYPT A
AES_ENCRYPT A
ANY_VALUE #f03c15
ASCII ASCII Y
ASIN ASIN Y
ATAN ATAN Y
ATAN2 ATAN2 Y
AVG AVG Y
BENCHMARK #f03c15
BIN A
BIN_TO_UUID #f03c15
BIT_AND BIT_AND Y
BIT_COUNT N
BIT_LENGTH BIT_LENGTH Y
BIT_OR BIT_OR Y
BIT_XOR #f03c15
CAST CAST Y
CEIL CEIL Y
CEILING CEILING Y
CHAR CHAR Y
CHAR_LENGTH CHAR_LENGTH Y
CHARACTER_LENGTH CHARACTER_LENGTH Y
CHARSET A
COALESCE COALESCE Y
COERCIBILITY #f03c15
COLLATION #f03c15
COMPRESS COMPRESS Y
CONCAT CONCAT Y
CONCAT_WS CONCAT_WS Y
CONNECTION_ID A
CONV A
CONVERT CONVERT Y
CONVERT_TZ A
COS COS Y
COT COT Y
COUNT COUNT Y
COUNT COUNT Y
CRC32 A
CREATE_DH_PARAMETERS #f03c15
CREATE_DIGEST A
CUME_DIST #f03c15
CURDATE CURDATE Y
CURRENT_DATE CURRENT_DATE Y
CURRENT_ROLE A
CURRENT_TIME CURRENT_TIME Y
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Y
CURRENT_USER A
CURTIME CURTIME Y
DATABASE DATABASE Y
DATE A
DATE_ADD A
DATE_FORMAT A
DATE_SUB A
DATEDIFF DATEDIFF Y
DAY DAY Y
DAYNAME DAYNAME Y
DAYOFMONTH DAYOFMONTH Y
DAYOFWEEK DAYOFWEEK Y
DAYOFYEAR DAYOFYEAR Y
DECODE DECODE Y
DEFAULT #f03c15
DEGREES DEGREES Y
DENSE_RANK #f03c15
DES_DECRYPT Deprecated
DES_ENCRYPT Deprecated
ELT #f03c15
ENCODE Deprecated
ENCRYPT ENCRYPT Y
EXP EXP Y
EXPORT_SET #f03c15
EXTRACT EXTRACT Y
ExtractValue #f03c15
FIELD A
FIND_IN_SET A
FIRST_VALUE #f03c15
FLOOR FLOOR Y
FORMAT A
FOUND_ROWS #f03c15
FROM_BASE64 A
FROM_DAYS A
FROM_UNIXTIME A
GeomCollection #f03c15
GeometryCollection #f03c15
GET_DD_COLUMN_PRIVILEGES #f03c15
GET_DD_CREATE_OPTIONS #f03c15
GET_DD_INDEX_SUB_PART_LENGTH #f03c15
GET_FORMAT #f03c15
GET_LOCK #f03c15
GREATEST GREATEST Y
GROUP_CONCAT GROUP_CONCAT Y
GTID_SUBSET #f03c15
GTID_SUBTRACT #f03c15
HEX A
HOUR HOUR Y
ICU_VERSION #f03c15
IF N
IFNULL IFNULL Y
INET_ATON #f03c15
INET_NTOA #f03c15
INET6_ATON #f03c15
INET6_NTOA #f03c15
INSERT INSERT Y
INSTR INSTR Y
INTERVAL #f03c15
IS_FREE_LOCK #f03c15
IS_IPV4 A
IS_IPV4_COMPAT #f03c15
IS_IPV4_MAPPED #f03c15
IS_IPV6 A
IS_USED_LOCK #f03c15
IS_UUID A
ISNULL #f03c15
LAG #f03c15
LAST_INSERT_ID LAST_INSERT_ID Y
LAST_VALUE #f03c15
LCASE LCASE Y
LEAD N
LEAST LEAST Y
LEFT LEFT Y
LENGTH LENGTH Y
LineString #f03c15
LN LN Y
LOAD_FILE #f03c15
LOCALTIME A
LOCALTIMESTAMP A
LOCATE LOCATE Y
LOG LOG Y
LOG10 LOG10 Y
LOG2 N
LOWER LOWER Y
LPAD LPAD Y
LTRIM LTRIM Y
MAKE_SET #f03c15
MAKEDATE A
MAKETIME Y
MASTER_POS_WAIT N
MAX MAX Y
MBRContains N
MBRCoveredBy N
MBRCovers N
MBRDisjoint N
MBREquals N
MBRIntersects N
MBROverlaps N
MBRTouches N
MBRWithin N
MD5 A
MICROSECOND A
MID A
MIN MIN Y
MINUTE MINUTE Y
MOD MOD Y
MONTH MONTH Y
MONTHNAME MONTHNAME Y
MultiLineString N
MultiPoint #f03c15
MultiPolygon #f03c15
NAME_CONST #f03c15
NOW A
NTH_VALUE #f03c15
NTILE #f03c15
NULLIF NULLIF Y
OCT #f03c15
OCTET_LENGTH OCTET_LENGTH Y
ORD A
PASSWORD A
PERCENT_RANK N
PERIOD_ADD A
PERIOD_DIFF A
PI PI Y
Point #f03c15
Polygon #f03c15
POSITION POSITION Y
POW A
POWER POWER Y
QUARTER QUARTER Y
QUOTE A
RADIANS RADIANS Y
RAND RAND Y
RANDOM_BYTES A
RANK #f03c15
REGEXP_INSTR #f03c15
REGEXP_LIKE REGEXP_LIKE Y
REGEXP_REPLACE REGEXP_REPLACE Y
REGEXP_SUBSTR #f03c15
RELEASE_ALL_LOCKS #f03c15
RELEASE_LOCK #f03c15
REPEAT REPEAT Y
REPLACE REPLACE Y
REVERSE A
RIGHT RIGHT Y
ROLES_GRAPHML #f03c15
ROUND ROUND Y
ROW_COUNT #f03c15
ROW_NUMBER #f03c15
RPAD RPAD Y
RTRIM RTRIM Y
SCHEMA SCHEMA Y
SEC_TO_TIME A
SECOND SECOND Y
SESSION_USER A
SHA1 A
SHA2 A
SIGN SIGN Y
SIN SIN Y
SLEEP A
SOUNDEX SOUNDEX Y
SPACE SPACE Y
SQRT SQRT Y
STATEMENT_DIGEST #f03c15
STATEMENT_DIGEST_TEXT #f03c15
STD #f03c15
STDDEV #f03c15
STDDEV_POP STDDEV_POP Y
STDDEV_SAMP STDDEV_SAMP Y
STR_TO_DATE A
STRCMP A
SUBDATE A
SUBSTR SUBSTR Y
SUBSTRING SUBSTRING Y
SUBSTRING_INDEX A
SUBTIME A
SUM SUM Y
SYSDATE SYSDATE Y
SYSTEM_USER A
TAN TAN Y
TIME A
TIME_FORMAT A
TIME_TO_SEC A
TIMEDIFF A
TIMESTAMP A
TIMESTAMPADD #f03c15
TIMESTAMPDIFF #f03c15
TO_BASE64 A
TO_DAYS A
TO_SECONDS A
TRIM TRIM Y
TRUNCATE TRUNCATE Y
UCASE A
UNCOMPRESS #f03c15
UNCOMPRESSED_LENGTH #f03c15
UNHEX A
UNIX_TIMESTAMP A
UpdateXML #f03c15
UPPER UPPER Y
USER USER Y
UTC_DATE A
UTC_TIME A
UTC_TIMESTAMP A
UUID UUID A
UUID_SHORT A
UUID_TO_BIN #f03c15
VALIDATE_PASSWORD_STRENGTH #f03c15
VALUES #f03c15
VAR_POP VAR_POP Y
VAR_SAMP VAR_SAMP Y
VARIANCE #f03c15
VERSION A
WAIT_FOR_EXECUTED_GTID_SET #f03c15
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS #f03c15
WEEK WEEK Y
WEEKDAY A
WEEKOFYEAR A
WEIGHT_STRING #f03c15
YEAR YEAR Y
YEARWEEK A

References

### datasource
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:public;MODE=MYSQL;DATABASE_TO_UPPER=false;INIT=CREATE SCHEMA IF NOT EXISTS public
spring.datasource.username=sa

h2-functions-4-mysql's People

Contributors

linux-china avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.