DBMS SQLite 3.42 ಮತ್ತು DuckDB 0.8.0 ಬಿಡುಗಡೆ. SQLite ಗಾಗಿ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳ ಅನುಷ್ಠಾನದೊಂದಿಗೆ CG/SQL

ಪ್ಲಗ್-ಇನ್ ಲೈಬ್ರರಿಯಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಹಗುರವಾದ DBMS SQLite 3.42 ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ. SQLite ಕೋಡ್ ಅನ್ನು ಸಾರ್ವಜನಿಕ ಡೊಮೇನ್ ಆಗಿ ವಿತರಿಸಲಾಗಿದೆ, ಅಂದರೆ. ಯಾವುದೇ ಉದ್ದೇಶಕ್ಕಾಗಿ ನಿರ್ಬಂಧಗಳಿಲ್ಲದೆ ಮತ್ತು ಉಚಿತವಾಗಿ ಬಳಸಬಹುದು. SQLite ಡೆವಲಪರ್‌ಗಳಿಗೆ ಹಣಕಾಸಿನ ಬೆಂಬಲವನ್ನು ವಿಶೇಷವಾಗಿ ರಚಿಸಲಾದ ಒಕ್ಕೂಟವು ಒದಗಿಸಿದೆ, ಇದು Adobe, Oracle, Mozilla, Bentley ಮತ್ತು Bloomberg ನಂತಹ ಕಂಪನಿಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.

ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • FTS5 ಪೂರ್ಣ-ಪಠ್ಯ ಸೂಚ್ಯಂಕಗಳಿಗಾಗಿ, ಸುರಕ್ಷಿತ-ಅಳಿಸು ಆಜ್ಞೆಯನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು ಅಳಿಸಿದ ನಂತರ ಎಲ್ಲಾ ಉಳಿದ ಡೇಟಾವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತೆರವುಗೊಳಿಸುತ್ತದೆ.
  • JSON ಡೇಟಾವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಕಾರ್ಯಗಳು ಈಗ JSON5 ವಿಸ್ತರಣೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ.
  • ಸುಧಾರಿತ ಪ್ರಶ್ನೆ ಯೋಜಕ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಎಣಿಕೆ-ವೀಕ್ಷಣೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಉಪಪ್ರಶ್ನೆಗಳಲ್ಲಿ ಬಳಕೆಯಾಗದ ಕಾಲಮ್‌ಗಳ ಸಂಸ್ಕರಣೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಪುಶ್-ಡೌನ್ ಆಪ್ಟಿಮೈಸೇಶನ್‌ನ ಸುಧಾರಿತ ಅನುಷ್ಠಾನ.
  • ಕಮಾಂಡ್ ಲೈನ್ ಇಂಟರ್‌ಫೇಸ್‌ಗೆ “--unsafe-testing” ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಪರೀಕ್ಷೆಯಲ್ಲಿ ಬಳಸಲು ಉದ್ದೇಶಿಸಿರುವ “.testctrl” ನಂತಹ ಕೆಲವು ಅಪಾಯಕಾರಿ ಆಜ್ಞೆಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಸುರಕ್ಷಿತ ಕ್ರಮದಲ್ಲಿ ("-ಸುರಕ್ಷಿತ"), ".log on" ಮತ್ತು ".log off" ಆಜ್ಞೆಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ. “—” ಡಿಲಿಮಿಟರ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ವಾದಗಳ ನಂತರ ಆಯ್ಕೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಅನಂತ ಮತ್ತು NaN ಮೌಲ್ಯಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ":inf" ಮತ್ತು ":nan" ನಿಯತಾಂಕಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಅಪ್ಲಿಕೇಶನ್-ವ್ಯಾಖ್ಯಾನಿತ SQL ಫಂಕ್ಷನ್ ಹೆಸರುಗಳು ಕ್ರಾಸ್, ಫುಲ್, ಇನ್ನರ್, ಲೆಫ್ಟ್, ನ್ಯಾಚುರಲ್, ಔಟರ್ ಮತ್ತು ರೈಟ್ ಕೀವರ್ಡ್‌ಗಳೊಂದಿಗೆ ಅತಿಕ್ರಮಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ.
  • PRAGMA ಇಂಟೆಗ್ರಿಟಿ_ಚೆಕ್‌ನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ. NULL ಅಲ್ಲದ ಸ್ಥಿತಿಯೊಂದಿಗೆ ಕಾಲಮ್‌ಗಳಲ್ಲಿ NaN ಮೌಲ್ಯಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಪರಿಶೀಲಿಸುವಿಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ದೋಷ ಸಂದೇಶಗಳ ಸುಧಾರಿತ ಮಾಹಿತಿ ವಿಷಯ.
  • ಸೆಶನ್ ಆಡ್-ಆನ್ ROWID ಇಲ್ಲದೆಯೇ ಕೋಷ್ಟಕಗಳಿಂದ ಬದಲಾವಣೆಗಳನ್ನು ಪ್ರತಿಬಂಧಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
  • ಸೆಕೆಂಡುಗಳ ಭಿನ್ನರಾಶಿಗಳನ್ನು ಬಳಸಲು ಸಮಯ ಮತ್ತು ದಿನಾಂಕಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು "ಸಬ್ಸೆಕ್" ಮಾರ್ಪಡಿಸುವಿಕೆಯನ್ನು ಕಾರ್ಯಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ.
  • ಅರೇಗಳು ಮತ್ತು JSON ಆಬ್ಜೆಕ್ಟ್‌ಗಳಿಗೆ ಡೀಫಾಲ್ಟ್ ರಿಕರ್ಶನ್ ಡೆಪ್ತ್ ಅನ್ನು 2000 ರಿಂದ 1000 ಕ್ಕೆ ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, DuckDB 0.8.0 DBMS ನ ಬಿಡುಗಡೆಯನ್ನು ರಚಿಸಲಾಗಿದೆ, ಇದು SQLite ನ ಆವೃತ್ತಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತದೆ, ಸಂಗ್ರಹವಾಗಿರುವ ಡೇಟಾದ ಗಮನಾರ್ಹ ಭಾಗವನ್ನು ಒಳಗೊಂಡಿರುವ ವಿಶ್ಲೇಷಣಾತ್ಮಕ ಪ್ರಶ್ನೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಾಮರ್ಥ್ಯಗಳು ಮತ್ತು ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳೊಂದಿಗೆ ವಿಸ್ತರಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ಸಂಪೂರ್ಣ ವಿಷಯಗಳ ಒಟ್ಟುಗೂಡಿಸುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಕೋಷ್ಟಕಗಳು ಅಥವಾ ಹಲವಾರು ದೊಡ್ಡ ಕೋಷ್ಟಕಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುವುದು. SQL ನ ಸುಧಾರಿತ ಉಪಭಾಷೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಅದು ಸಂಕೀರ್ಣ ಮತ್ತು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುವ ಪ್ರಶ್ನೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಹೆಚ್ಚುವರಿ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಸಂಕೀರ್ಣ ಪ್ರಕಾರಗಳನ್ನು (ವ್ಯೂಹಗಳು, ರಚನೆಗಳು, ಒಕ್ಕೂಟಗಳು) ಬೆಂಬಲಿಸುತ್ತದೆ, ಏಕಕಾಲದಲ್ಲಿ ಬಹು ಪ್ರಶ್ನೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡುತ್ತದೆ ಮತ್ತು CSV, JSON ಮತ್ತು ಪ್ಯಾರ್ಕ್ವೆಟ್ ಫೈಲ್‌ಗಳಿಂದ ನೇರವಾಗಿ ಪ್ರಶ್ನೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡುತ್ತದೆ. . PostgreSQL DBMS ನಿಂದ ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿದೆ.

SQLite ನಿಂದ ಶೆಲ್ ಕೋಡ್ ಜೊತೆಗೆ, ಯೋಜನೆಯು ಪ್ರತ್ಯೇಕ ಲೈಬ್ರರಿಯಲ್ಲಿ PostgreSQL ನಿಂದ ಪಾರ್ಸರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, MonetDB ಯಿಂದ ದಿನಾಂಕ ಗಣಿತ ಘಟಕ, ಅದರ ಸ್ವಂತ ವಿಂಡೋ ಕಾರ್ಯಗಳ ಅನುಷ್ಠಾನ (ಸೆಗ್ಮೆಂಟ್ ಟ್ರೀ ಒಟ್ಟುಗೂಡಿಸುವಿಕೆಯ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಆಧರಿಸಿ), ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿ ಪ್ರೊಸೆಸರ್ RE2 ಲೈಬ್ರರಿ, ತನ್ನದೇ ಆದ ಪ್ರಶ್ನೆ ಆಪ್ಟಿಮೈಜರ್, ಮತ್ತು MVCC ನಿಯಂತ್ರಣ ಕಾರ್ಯವಿಧಾನದ ಏಕಕಾಲದಲ್ಲಿ ಕಾರ್ಯಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ (ಮಲ್ಟಿ-ಆವೃತ್ತಿ ಸಮನ್ವಯ ನಿಯಂತ್ರಣ), ಹಾಗೆಯೇ ಹೈಪರ್-ಪೈಪ್ಲೈನಿಂಗ್ ಕ್ವೆರಿ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಆಧರಿಸಿ ವೆಕ್ಟರೈಸ್ಡ್ ಕ್ವೆರಿ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಎಂಜಿನ್, ಇದು ಮೌಲ್ಯದ ದೊಡ್ಡ ಸೆಟ್‌ಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಒಂದು ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ಏಕಕಾಲದಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬೇಕು. ಯೋಜನೆಯ ಕೋಡ್ ಅನ್ನು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ.

DuckDB ಯ ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ:

  • ಸಾಲುಗಳನ್ನು ಕಾಲಮ್‌ಗಳಾಗಿ ಪರಿವರ್ತಿಸಲು ಮತ್ತು ಪ್ರತಿಯಾಗಿ "PIVOT" ಮತ್ತು "UNPIVOT" ಎಂಬ ಹೊಸ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡುವಾಗ ಮತ್ತು ರಫ್ತು ಮಾಡುವಾಗ ಸುಧಾರಿತ ಸಮಾನಾಂತರೀಕರಣ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಪಾರ್ಕ್ವೆಟ್, CSV ಮತ್ತು JSON ಫಾರ್ಮ್ಯಾಟ್‌ಗಳನ್ನು ಬಳಸುವಾಗ CSV ಫೈಲ್‌ಗಳಿಂದ ಬಹು-ಥ್ರೆಡ್ ಓದುವಿಕೆ ಮತ್ತು ಬಹು-ಥ್ರೆಡ್ ಬರವಣಿಗೆಯನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.
  • ಫೈಲ್ ಪಥಗಳನ್ನು ನಿರ್ಧರಿಸುವಾಗ ಡೈರೆಕ್ಟರಿಗಳ ಮೂಲಕ ಪುನರಾವರ್ತಿತವಾಗಿ ಪುನರಾವರ್ತಿಸಲು "**" ಆಪರೇಟರ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಉದಾಹರಣೆಗೆ, "'ಡೇಟಾ/ಗ್ಲೋಬ್/ಕ್ರಾಲ್/ಸ್ಟಾಕ್ ಓವರ್‌ಫ್ಲೋ/**/*.csv';" ನಿಂದ).
  • ಸಮಯ ಸರಣಿಯ ರೂಪದಲ್ಲಿ ಡೇಟಾಕ್ಕಾಗಿ ವಿಲೀನ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ (JOIN) ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ನಿರ್ದಿಷ್ಟ ಸಮಯದ ಮಧ್ಯಂತರದಲ್ಲಿ ನಿಯತಾಂಕ ಮೌಲ್ಯಗಳ ಸ್ಲೈಸ್‌ಗಳು), ಇದರಲ್ಲಿ ದಾಖಲೆಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುವ ಮಾನದಂಡವು ನಿಖರವಾಗಿಲ್ಲ, ಆದರೆ ಮೌಲ್ಯಗಳ ಅಂದಾಜು ಕಾಕತಾಳೀಯವಾಗಿದೆ ಸಮಯದೊಂದಿಗೆ ಕ್ಷೇತ್ರದಲ್ಲಿ (ಉದಾಹರಣೆಗೆ, ನೀವು ದಾಖಲೆಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಬಹುದು, ಸಮಯವು 1 ನಿಮಿಷಕ್ಕಿಂತ ಹೆಚ್ಚಿಲ್ಲ).
  • ಡೇಟಾಬೇಸ್ ಮೆಟಾಡೇಟಾದ ಲೇಜಿ ಲೋಡಿಂಗ್ ಅನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು DBMS ನ ಉಡಾವಣೆಯನ್ನು ಹತ್ತಾರು ಬಾರಿ ವೇಗಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು.
  • ಪೈಥಾನ್‌ನಲ್ಲಿ ಕಸ್ಟಮ್ ಕಾರ್ಯಗಳನ್ನು ಸಂಪರ್ಕಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಅಪಾಚೆ ಬಾಣವನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸಲು ADBC ​​(ಆರೋ ಡೇಟಾಬೇಸ್ ಕನೆಕ್ಟಿವಿಟಿ) API ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಸ್ವಿಫ್ಟ್ ಕೋಡ್‌ನೊಂದಿಗೆ ಏಕೀಕರಣಕ್ಕಾಗಿ ಬೈಂಡಿಂಗ್ ಅನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.
  • ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಪೂರ್ಣಾಂಕ ಕಾರ್ಯಾಚರಣೆಗಳ ಬದಲಿಗೆ ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಡಿವಿಷನ್ ಆಪರೇಟರ್ ("/") ನ ನಡವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಪೂರ್ಣಾಂಕ ವಿಭಜನೆಗಾಗಿ ಹೊಸ ಆಪರೇಟರ್ "//" ಅನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ. "SET integer_division=true;" ಅನ್ನು ಹೊಂದಿಸುವ ಮೂಲಕ ಹಳೆಯ ನಡವಳಿಕೆಯನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು.
  • ವಿಂಗಡಿಸುವಾಗ ಶೂನ್ಯ ದಾಖಲೆಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವ ವಿಧಾನವನ್ನು "NULLS FIRST" ನಿಂದ "NULLS LAST" ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ, ಅಂದರೆ. NULL ಮೌಲ್ಯಗಳನ್ನು ಈಗ ಪಟ್ಟಿಯ ಪ್ರಾರಂಭಕ್ಕಿಂತ ಕೊನೆಯಲ್ಲಿ ಮುದ್ರಿಸಲಾಗುತ್ತದೆ. "SET default_null_order='nulls_first';" ಅನ್ನು ಹೊಂದಿಸುವ ಮೂಲಕ ಹಳೆಯ ನಡವಳಿಕೆಯನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಫೇಸ್‌ಬುಕ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ CG/SQL ಯೋಜನೆಯನ್ನು ನಾವು ಗಮನಿಸಬಹುದು, ಇದು SQLite ನೊಂದಿಗೆ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬಳಸಲು ಕೋಡ್ ಜನರೇಟರ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. CG/SQL ನಿಮಗೆ T-SQL (ಟ್ರಾನ್ಸಾಕ್ಟ್-SQL) ನ ವಿಶೇಷ ಉಪಭಾಷೆಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬರೆಯಲು ಅನುಮತಿಸುತ್ತದೆ, ಇದು ಪ್ರಮಾಣಿತ C ಲೈಬ್ರರಿಯ ಕರೆ ಕಾರ್ಯಗಳನ್ನು ಮತ್ತು SQLite ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಸಂಕೀರ್ಣ ಪ್ರಶ್ನೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು SQLite C API ಅನ್ನು ಬಳಸುವ C ಕೋಡ್‌ಗೆ ರಚಿಸಲಾದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಂಕಲಿಸಲಾಗುತ್ತದೆ. ಕಂಪೈಲ್ ಮಾಡಲಾದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಿ, ಜಾವಾ ಮತ್ತು ಆಬ್ಜೆಕ್ಟಿವ್-ಸಿ ಕಾರ್ಯಕ್ರಮಗಳಿಗೆ ಸಂಪರ್ಕಿಸಬಹುದು. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ಅನ್ನು C ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ